|
Derive a class from CStatic and handle OnCtlColor or OnPaint .
|
|
|
|
|
This one[^] works for me.
Though I speak with the tongues of men and of angels, and have not money, I am become as a sounding brass, or a tinkling cymbal. George Orwell, "Keep the Aspidistra Flying", Opening words
|
|
|
|
|
You can also respond to the WM_CTLCOLORSTATIC message in the parent window
and set the control's color(s) ...
ON_MESSAGE(WM_CTLCOLORSTATIC, OnCtlColorStatic)
...
RedBrush.CreateSolidBrush(RGB(0xFF,0x00,0x00));
...
LRESULT CMMyDlg::OnCtlColorStatic( WPARAM wParam, LPARAM lParam)
{
HDC hDC = (HDC)wParam;
HWND hWnd = (HWND)lParam;
if (IDC_MYSTATIC == ::GetWindowLong(hWnd, GWL_ID))
{
::SetTextColor(hDC, RGB(0x00,0xFF,0xFF));
::SetBkColor(hDC, RGB(0xFF,0x00,0x00));
return (LPARAM)(HBRUSH)RedBrush;
}
return Default();
}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I have some ATL Composite control that i wrote - this Control "site" in some dialog.
I want to throw some event from this Control into the dialog - how can i do it ?
Thanks.
|
|
|
|
|
Yanshof wrote: I have some ATL Composite control that i wrote - this Control "site" in some dialog.
I want to throw some event from this Control into the dialog - how can i do it ?
Some platforms, including MFC and VB6 provide easy support for receiving control events in a dialog. If you aren't using one, or are using the control in a way that the platform doesn't support, you'll need to implement the control's event sink interface, and register it with the controls connection points when you create the control, and unregister it before destroying the control. You can look up info on IConnectionPointContainer and IConnectionPoint for more info on this.
Nathan
|
|
|
|
|
How do i create several files of integers to be used to test sorting methods. Make files of several sizes, for example, size 20, 200, and 2000. Make files that are in order, in reverse order, in random order, and partially in order.They should also have CPU time,the number of comparisons of keys and the number of assignments of list entries during sorting a list.
The code i have posted below,Thank you for ur help.
#include<iostream>
#include<iomanip>
using namespace std;
//function declarations
void selection_sort(int array[], int size);
void insertion_sort(int array[], int size);
int bin_search(int array[], int size, int item_sought);
void displayarray(int array[]);
void main()
{
//initialization of variables
int choice=0;
int sortarray[3]={0};
int item=0;
int i=0;
while (choice !=-1)
{
choice=0;//This is to make sure the loop executes again
while (choice != 1 && choice !=2 && choice !=3)
{
cout << "1 for selection sort, 2 for insertion sort, 3 for binary search" << endl;
cin >> choice;
}
cout << "Please enter 3 values in a row to use for the sort algorithm" << endl;
//input array values
for (i=0;i<3;i++)
cin >> sortarray[i];
//menu style selector for the user
if (choice==1)
selection_sort(sortarray, 3);
else if (choice==2)
insertion_sort(sortarray, 3);
else if (choice==3)
{
cout << "enter number sought";
cin >> item;
bin_search(sortarray, 3, item);
}
else
cout << "poor choice skippy" << endl;
cout << "Enter -1 to quit, make sure to enter a number, any number, otherwise" << endl;
cin >> choice;
}
}
void selection_sort(int array[], int size)
{
int n = size; // 0
for(int i = 0; i < n - 1; i++) // 1
{// 2
int smallest = array[i]; // 3
int small_pos = i; // 4
for(int j = i + 1; j <= n - 1; j++) // 5
if (array[j] < smallest) // 6
{ // 7
smallest = array[j]; // 8
small_pos = j; // 9
} // 10
array[small_pos] = array[i]; // 11
displayarray(array);
array[i] = smallest; // 12
displayarray(array);
} // 13
}
void insertion_sort(int array[], int size)
{
int next_element;
int n = size; // 0
for(int i = 1; i <= n - 1; i++) // 1
{ // 2
next_element = array[i]; // 3
int j = i; // 4
while(j > 0 && next_element < array[j-1])// 5
{
array[j] = array[j-1];
j--;
displayarray(array);
}
array[j] = next_element;
displayarray(array);
}
}
int bin_search(int array[], int size, int item_sought)
{
int n = size;
int first = 0;
int middle;
int last = n - 1;
bool found = false;
while(first <= last && !found)
{
middle = (first + last) / 2;
if(item_sought < array[middle])
last = middle - 1;
else if(item_sought > array[middle])
first = middle + 1;
else
found = true;
displayarray(array);
}
if(found)
return middle;
else
return n;
}
void displayarray(int array[])
{
//This function displays the values of the array
for (int i=0;i<3;i++)
cout << setw(2) << array[i];
cout << endl;
}
|
|
|
|
|
|
Is it possible to ignore users?
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Nelek wrote: Is it possible to ignore users?
unfortunately, not that i know about.
|
|
|
|
|
This[^] is not the exact answer, but will help in your logic.
Regards,
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
I'm still not sure with the example that was given..please explain to me
|
|
|
|
|
Why?
You are not reading what we tell you. And no one is going to make your homework. If you don't ask concrete things, you are not going to have answers (at least from me) anymore
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
i have a tip for you.
go back to school, and listen at the teacher when it explains
|
|
|
|
|
I have the following code:
RECT rect;
HWND h=GetDlgItem(IDC_PIC);
HDC tDC = ::GetDC(h); //Get the DC for the Picture Box
::GetClientRect(h,&rect);//Get dimensions of it
Here IDC_PIC is the id of the Picture Box control.
First Line of the code returning a valid pointer.
but ::GetDC(h) is initializing tdc with NULL value b'coz of which i am not able to do what i want.
One thing also rect is also giving garbage values.
I am using MFC.
Can any one tell me why?
Dhiraj
|
|
|
|
|
What do you want to do, exactly?
|
|
|
|
|
Dhiraj kumar Saini wrote: I am using MFC
Could have fooled me - I only see one call to an MFC class method,
and it shouldn't even compile.
What if you do this:
CWnd *pPictureCtlWnd = GetDlgItem(IDC_PIC);
if (pPictureCtlWnd)
{
CClientDC PictureCtlDC(pPictureCtlWnd);
CRect rect;
pPictureCtlWnd->GetClientRect(&rect);
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Dhiraj kumar Saini wrote: HWND h=GetDlgItem(IDC_PIC);
Are you using MFC or SDK.
In if it's MFC, then it should be like -
CWnd *pWnd = GetDlgItem (IDC_PICT);
CDC *pDC = pWnd->GetDC ();
pDC->TextOut (1,1,"hi",2);
else
If it's SDK, then the GetDlgItem also need the handle to parent.
HWND h=GetDlgItem(Handle to the dialog box that contains the control,IDC_PIC);
|
|
|
|
|
Is it possible to change scrollbars appearance on CListCtrl with OnCustomdrawList ( NMHDR* pNMHDR, LRESULT* pResult ) ?
Code sample?
Thanks in advance!
|
|
|
|
|
Search articles in the website. There is one CXListCtrl (I'm not sure about the name, but you can search with custom list control or surf through the menu to reach the section related). That ListCtrl has a lot of extra functionality... take a look, if it doesn't have what you need, it can give you a lot of ideas.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Hi All,
Please explain me why CArray::GetSize() returns an INT_PTR.
When I see the documentation regarding the function, it says returns the number of elements in the array.
Number of elements are int/long. I could not understand why is this INT_PTR.
In VS2k3, the compiler throws a warning. In VC6.0 there is no warning.
Regards,
Pratap
|
|
|
|
|
Raj Prathap wrote: Number of elements are int/long.
What do you mean by that? As far as I can see, all functions that deal with the number of elements or indices are INT_PTR. The reason for that is 64-bit compatibility.
|
|
|
|
|
int is defined to be 32bit (not in the standard, but by common use)
CArray can theoretically hold more than 4Gig Items, at least in 64 bit Windows. That would need a 64 bit integer.
Here the INT_PTR kicks in: It defines a signed (there's also UINT_PTR) integer datatype that has at least the size to hold a pointer in the specific architecture.
So, in 64 bit Windows, it would be a 64 bit integer.
Raj Prathap wrote: Number of elements are int/long.
Actually, I would expect the count of elements in a collection to be a unsigned value. I can't imagine a use for a negative count.
Though I speak with the tongues of men and of angels, and have not money, I am become as a sounding brass, or a tinkling cymbal. George Orwell, "Keep the Aspidistra Flying", Opening words
|
|
|
|
|
jhwurmbach wrote: Actually, I would expect the count of elements in a collection to be a unsigned value. I can't imagine a use for a negative count.
Error return, at least in a poorly designed implementation... For example, you call a function called PopulateCollection(...) , passing in the collection object and it returns an int value:
n > 0 -- collection now contains n elements
n == 0 -- collection now contains no elements
n < 0 -- error manipulating collection Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Very poor implementation. It would be mixing two concepts into one return value.
When manipulations are incorect, these manipulation-functions have to report faliure. In your example, the number of elements returned is only an additional gimmick, not the purpose of the function.
Asking for the number of elements can only return a number. There is no possible error case.
Though I speak with the tongues of men and of angels, and have not money, I am become as a sounding brass, or a tinkling cymbal. George Orwell, "Keep the Aspidistra Flying", Opening words
|
|
|
|
|
As I said, a poor implementaiton1
jhwurmbach wrote: Asking for the number of elements can only return a number. There is no possible error case.
That actually depends on how the collection is being accessed. For example, suppose you have an object that warps a simple array. The object could be in a state where it is not yet associated with, or has been detached from, an array. Asking the object for the number of elements should return... What?
Returning zero means that the collection has a size of zero, not that there is no collection. Again, a poor implementation, but just because you cannot think of a good reason for doing something does not mean that others cannot think of many bad reasons for doing it!
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|