我通过以下方式为静态标签着色:

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
    }

10-06 01:43