afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );
pDC
Contains a pointer to the display context for the child window. May be temporary.
pWnd
Contains a pointer to the child CWnd. May be temporary.
nCtlColor
Contains one of the following values, specifying the type of control:
Value | Meaning |
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 |
Called when a child system-defined control class or a message box is about to be drawn. The following controls call OnCtlColor:
Combo boxes | Buttons |
Edit controls | Static controls |
List boxes | Scroll bars |
To change the background color of a single-line edit control, you must set the brush handle in both the CTLCOLOR_EDIT and CTLCOLOR_MSGBOX message codes, as well as calling the SetBkColor function in response to the CTLCOLOR_EDIT code.
The return value from the function has no effect on a button with the BS_PUSHBUTTON or BS_DEFPUSHBUTTON style.
This message-handler member function calls the Default member function. Override this member function in your derived class to handle the WM_CTLCOLOR message.
OnCtlColor must return a handle to the brush that is to be used for painting the control background, or it must return NULL.
CDC::SetBkColor, WM_CTLCOLOR, CWnd::Default