设置控件的背景颜色,主要是针对对话框程序而言。方法是处理WM_CTLCOLOR消息,然后返回一个画刷即可。注意该画刷只能供系统使用,所以应该独立的设置一个变量。
改变静态文本的背景颜色和其他的控件还不一样,主要方法是:
HBRUSH KDialogPage7::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = KDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkColor(K_BACKGROUND_COLOR);
}
if (nCtlColor == CTLCOLOR_EDIT)
{
return hbr;
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return m_grayBrush;
}