注:部分方法已经不适合VS2003之后的开发环境
方法一:设置所有窗口的颜色
注:前一个为背景色,后一个为字体颜色。
方法二:设置当前窗口
首先://消息映射
BEGIN_MESSAGE_MAP(CHelloDlg, CDialog)
END_MESSAGE_MAP()
其次:定义两个函数
第三:重载OnEraseBkgnd和OnCtlColor
方法一:可以实现(但有点问题)
BOOL CHelloDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);
m_brBkgnd.CreateSolidBrush(RGB(183,213,213));
pDC->FillRect(&rect,&m_brBkgnd);
return TRUE;
}
方法二:可行
BOOL CClientDlg::OnEraseBkgnd(CDC* pDC)
{
CBrush back(RGB(220,215,254));
CBrush* pold=pDC->SelectObject(&back);
CRect rect;
pDC->GetClipBox (&rect);
pDC->PatBlt (rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);
return TRUE;
}
方法三:也可行
BOOL CHelloDlg::OnEraseBkgnd(CDC* pDC)
{
CBrush MyBrush;
MyBrush.CreateSolidBrush(RGB(0,255,0));
CBrush *pOldBrush=pDC->SelectObject(&MyBrush);
CRect Rect;
GetClientRect(&Rect);
pDC->Rectangle(&Rect);
pDC->SelectObject(pOldBrush);
return TRUE;
}
HBRUSH CHelloDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
}
评论