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;
posted @ 2018-06-05 15:33  小雨滴答  阅读(250)  评论(0编辑  收藏  举报