VS2008给对话框添加背景颜色
第一种方法如下:
在对话框OnPaint()函数中添加代码
1 //改变对话框背景颜色 2 CRect rect; 3 CPaintDC dc(this); 4 GetClientRect(rect); 5 dc.FillSolidRect(rect,RGB(244,247,252)); 6 dc.FillPath();
在RGB中选择自己喜欢的颜色,编译运行
第二种方法如下:
给对话框添加消息处理程序OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
HBRUSH CMyTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = __super::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
该消息相应函数中,首先调用对话框基类,:CDialog的OnStlColor函数,返回一个画刷句柄(hbr),然后该函数直接返回这个画刷句柄。
之后,系统就会使用这个画刷句柄绘制对话框及其子空间的背景,如果想要改变对话框的背景色,只需要自定义一个画刷,然后让OnCtlColor函数
返回这个画刷句柄即可。
首先为该类定义一个CBrush类型的私有成员变量:m_brush,并在其构造函数中利用CreateSolidBrush函数将该画刷初始化为一个颜色的画刷
m_brush.CreateSolidBrush(RGB(244,247,252)); //新建画刷并指定颜色
然后在OnCtlColor响应函数返回上述自定义画刷:m_brush
1 HBRUSH CMyTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 2 { 3 HBRUSH hbr = __super::OnCtlColor(pDC, pWnd, nCtlColor); 4 5 // TODO: 在此更改 DC 的任何属性 6 7 8 // TODO: 如果默认的不是所需画笔,则返回另一个画笔 9 return m_brush;