您的位置:首页 > 其它

VC/MFC如何设置对话框背景颜色

2014-10-30 16:24 441 查看
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃)

其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。
在InitInstance()中添加如下代码:

值得注意的是:在调用DoModal()之前必须先调用SetDialogBkColor。

这种方法经过笔者验证,并不能改变对话框背景

方法二:重载OnPaint(),即WM_PAINT消息

方法三:重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息
.h头文件添加 CBrush m_brush;
.cpp源文件添加 m_brush.CreateSolidBrush(RGB(255,0,0));

方法四:还是重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor), 即WM_CTLCOLOR消息
.h头文件添加 CBrush m_brush;
.cpp源文件添加 m_brush.CreateSolidBrush(RGB(255,0,0));

可以根据不同的控件类型返回不同的画刷,来实现不同控件颜色的设置

PS: 也可以到OnEraseBkgnd(CDC* pDC)添加如下代码:
BOOL
CXXXDlg::OnEraseBkgnd(CDC* pDC)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

CRect m_rt;

GetClientRect(&m_rt);

CBrush brush;

brush.CreateSolidBrush(RGB(0,255,0));

pDC->FillRect(&m_rt,&brush);

return TRUE;//CDialogEx::OnEraseBkgnd(pDC);

}

FROM: http://www.cnblogs.com/staring-hxs/archive/2013/01/09/2853126.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: