具体步骤:
1 给你的工程中的对话框类添加一个CBrush变量,如:
HBRUSH m_bkBrush; //准备一把背景刷子
2 在对话框的初始化函数OnInitDialog中return TRUE的前面添加一行代码:
m_bkBrush.CreateSolidBrush(RGB(255,255,0)); //创建一把黄色的背景刷子
3 最后把你原来的代码改成如下:
HBRUSH CEX06aDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if(nCtlColor==CTLCOLOR_DLG) //如果是CTLCOLOR_EDIT edit背景色能改变,为什么改为
//edit edit box背景色改不了
return m_bkBrush; //返回刚才创建的背景刷子
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
4.在对话框的关闭函数中释放刷子
void CEX06aDialog::OnClose()
{
DeleteObject(m_bkBrush);
CDialog::OnClose();
}