我有一个对话框项目(Group Box),我想改变背景颜色。我已经阅读了我在这里可以找到的类似的帖子,但仍然有一些更基本的问题。我对如何完成此任务的想法是先捕获ID,然后使用WM_CTLCOLORSTATIC进行更改。
我很乐意更改Group Box的大纲和文字,或仅更改Group框的整个背景(而不是整个对话框)。我还认为我可能需要更改静态文本区域才能实现这一点(组框内的静态文本区域有ID),但我不确定。
我的下面的代码试图找到一个匹配的ID,其中包含我想要更改的组框的ID。如果我找到匹配,那么我改变了bgColor和TextColor。但是,我从来没有找到匹配。我相信ID Group Box的ID值大约是5000左右。如果我强制两者之间的匹配(通过静态给ID分组框的编号),它会将对话框的错误部分更改为我传入的bg颜色。不确定我是什么'我在这里做错了,我应该尝试不同的方法吗?
long id;
static HBRUSH chgTextColor, chgBackColor;
case WM_CTLCOLORSTATIC:
id = GetWindow((HWND)lParam, GWL_ID);
if ( id == IDC_GROUP_BOX )
{
chgTextColor = RGB(0,255,255);
chgBackColor = RBG(0,255,0);
SetTextColor((HDC)wParam, chgTextColor);
SetBkColor((HDC)wParam, chgBackColor);
hChgBrush = CreateSolidBrush(chgBackColor);
return (long)hChgBrush
}
break;