我通过以下方式为静态标签着色:
case WM_CTLCOLORSTATIC:
{
DWORD CtrlID = GetDlgCtrlID((HWND)lParam); //Window Control ID
if(OptionColored)
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(255,255,255));
SetBkColor(hdcStatic, RGB(70,70,70));
return (INT_PTR)hBrush;
}
}
现在,如何为复选框和分组框着色?编辑:
当我尝试使用此代码更改颜色时,背景令人担忧。文字颜色不行。
最佳答案
尝试播放以下消息:
WM_CTLCOLORBTN
WM_CTLCOLOREDIT
WM_CTLCOLORDLG
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC //You are already using
我知道您需要处理
WM_CTLCOLORBTN
来对颜色复选框进行处理,但是不确定该groupbox是哪一个。它也应适用于从CButton
继承的组框在您的代码中还注意到您正在检查(
OptionColored
),不确定是什么,但是您需要检查消息是否针对所需的颜色控件。因此,无需检查
if(OptionColored)
,您需要执行以下操作:DWORD CtrlID = GetDlgCtrlID((HWND)lParam));
if (CtrlID == IDC_STATIC1) //If desired control
{
//Color my STATIC CONTROLE
}