更改颜色常需调用的消息:
更改对话框的的控件的颜色:
afx_msg hbrush onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor);
更改对话框背景:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);//对话框背景
BEGIN_MESSAGE_MAP(CButtonDlg, CDialog)
ON_WM_CTLCOLOR() //建立消息映射 *.cpp
ON_WM_ERASEBKGND() //设置对话框图片背景
END_MESSAGE_MAP()
一、设置整个窗体的背景色
调用WM_ERASEBKGND消息来设置除了控件以外的窗体的背景色。
代码如下:
BOOL Cyonghu1::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBrush backBrush(RGB(104, 221, 154)); //要设置的颜色
// 保存旧画刷
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // 擦掉所要画的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(),
rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
//return CFormView::OnEraseBkgnd(pDC);
}
二、设置控件的背景色和字体