|
I tried implemented SetDialogBkColor in InitInstance inorder to change the colour of my dialog box but after running it I dont see any change in the dialog colour.Please Help me
S.Yamini
|
|
|
|
|
yaminisridaran wrote: inorder to change the colour of my dialog box
Handle WM_CTLCOLOR message and return the brush handle if nCtlColor parameter is CTLCOLOR_DLG
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
can u please explain this to me
S.Yamini
|
|
|
|
|
Thanks. Can u explain this to me
S.Yamini
|
|
|
|
|
Refer here[^]
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
i implemented the code but it is showing error can u tell me how u have implmented the m_brush
S.Yamini
|
|
|
|
|
yaminisridaran wrote: implmented the m_brush
its handle to the brush object. Refer CBrush class for more details.
Sample,
CBrush m_brDlg;
m_brDlg.CreateSolidBrush( RGB(...) );
(HBRUSH)m_brDlg
m_brDlg.DeleteObject();
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
Parthi_Appu wrote: CBrush m_brDlg;m_brDlg.CreateSolidBrush( RGB(...) );(HBRUSH)m_brDlg /* to get the handle from CBrush object *//* Make sure to delete the object if you no more need it */m_brDlg.DeleteObject();
Handle returned by this method would not be valid, as it goes out of scope.
Need to use win32 API CreateSolidBrush and return HBRUSH .
|
|
|
|
|
Sorry i didn't mention its a member, but the sample code has naming convention, which will say that m_brDlg is a member to the dialog class.
Sorry once again to miss out the point...
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
I have implement the below code in OnCtlColor but still the colour is not changed.
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
CBrush m_brush;
m_brush.CreateSolidBrush( RGB(255,0,0) );
if (CTLCOLOR_DLG == nCtlColor)
return m_brush;
// TODO: Return a different brush if the default is not desired
return hbr;
S.Yamini
|
|
|
|
|
|
I am able to open the source code but I am getting this error message
error C2440: 'initializing' : cannot convert from 'char [11]' to 'const unsigned short *'
S.Yamini
|
|
|
|
|
yaminisridaran wrote: error C2440: 'initializing' : cannot convert from 'char [11]' to 'const unsigned short *'
You need to show code, where this error is occuring.
Instead of clustering this thread, start new thread for this question.
|
|
|
|
|
Using the below code I was able to change the colour of the edit box but can I know for changing the colour of button and list control what CTLCOLOR we have to use
if (nCtlColor == CTLCOLOR_EDIT)
{
hbr = CreateSolidBrush(RGB(255,0,0));
}
return hbr ;
S.Yamini
|
|
|
|
|
Refer MSDN. You have missed this line for varius controls,
CTLCOLOR_BTN Button control
CTLCOLOR_DLG Dialog box
CTLCOLOR_EDIT Edit control
CTLCOLOR_LISTBOX List-box control
CTLCOLOR_MSGBOX Message box
CTLCOLOR_SCROLLBAR Scroll-bar control
CTLCOLOR_STATIC Static control
|
|
|
|
|
This works great.
Ur project is showing error message.
error RC2135 : file not found: ATLNotify.tlb
I want to learn COM CAN u give me any suggestion
S.Yamini
|
|
|
|
|
yaminisridaran wrote: Ur project is showing error message.
error RC2135 : file not found: ATLNotify.tlb
Which IDE you are using ? It works great for me on VC6 and VS2005.
yaminisridaran wrote: I want to learn COM CAN u give me any suggestion
1. Book[^] by Don Box.
2. Inside COM[^] by Dale Rogesron.
Additionally refer beginner[^] section on CP.
|
|
|
|
|
|
As told you already, you need to ask such questions to article authors.
|
|
|
|
|
yaminisridaran wrote: CBrush m_brush;
i didn't mention it my previous post. Make the m_brush is member to the dialog class
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
Your dialog's OnCtlColor should look like this,
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_DLG)
{
hbr = CreateSolidBrush(RGB(0,45,23));
}
return hbr ;
}
Remember to do this by adding WM_CTLCOLOR handler thorugh class wizard.
|
|
|
|
|
prasad_som wrote: hbr = CreateSolidBrush(RGB(0,45,23));
Isn't it a resource leake?..
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
Parthi_Appu wrote: Isn't it a resource leake?..
No, will be deleted by framework.
|
|
|
|
|
prasad_som wrote: No, will be deleted by framework
No its a leake...
Check the GDI objects in task manager. Its keep on increasing when you move any window(task manager window itself) over the dialog. But if you return the HGDIOBJ of member variable, then the count remains same...
Do your Duty and Don't expect the Result Rate this Post, if I helped You
|
|
|
|
|
Right now, I cant check it. But , be sure, its not a leak.
|
|
|
|