Windows provides default color values for buttons. The system sends a WM_CTLCOLORBTN message to a button's parent window before the button is drawn. This message contains a handle of the button's device context and a handle of the child window. The parent window can use these handles to change the button's text and background colors. The following table shows the default button-color values.
Value | Element colored |
COLOR_BTNFACE | Button faces. |
COLOR_BTNHIGHLIGHT | Highlight area (the top and left edges) of a button. |
COLOR_BTNSHADOW | Shadow area (the bottom and right edges) of a button. |
COLOR_BTNTEXT | Regular (nongrayed) text in buttons. |
COLOR_GRAYTEXT | Disabled (gray) text in buttons. This color is set to 0 if the current display driver does not support a solid gray color. |
COLOR_WINDOW | Window backgrounds. |
COLOR_WINDOWFRAME | Window frames. |
COLOR_WINDOWTEXT | Text in windows. |
An application can retrieve the default values for these colors by calling the GetSysColor function, or set the values by calling the SetSysColors function. For more information about system colors, see System Information. For more information about how colors are used with controls, see Controls.
Portability Issue The WM_CTLCOLOR message has been replaced by the set of control-color messages. When porting your Windows 3.x - based application to the Win32 API, you must modify any code that processes the WM_CTLCOLOR message.