我用这种方式给静态标签上色:
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
来给复选框上色 ,但不确定哪个是用于分组框的。 它也应该适用于分组框,因为那些继承自 CButton
还注意到在您的代码中您正在检查 (OptionColored
),不确定那是什么,但您需要检查消息是否针对您想要的颜色控件。
所以不是检查 if(OptionColored)
,你需要这样的东西:
DWORD CtrlID = GetDlgCtrlID((HWND)lParam));
if (CtrlID == IDC_STATIC1) //If desired control
{
//Color my STATIC CONTROLE
}
关于c++ - 彩色复选框、组框等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095728/