贝思曼床垫:MFC基于对话框背景颜色的修改

来源:百度文库 编辑:九乡新闻网 时间:2024/07/07 15:18:04

MFC基于对话框的的背景颜色修改

方法一:

重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。
---- ①在CExampleDlgDlg的头文件中,添加一CBrush的成员变量:    
class CExampleDlgDlg : public CDialog
{...
protected:
CBrush m_brush;    
...
};
---- ②在OnInitDialog()函数中添加如下代码:    
BOOL CExampleDlgDlg::OnInitDialog()    
{
...
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子    
...
}    
---- ③利用ClassWizard重载OnCtlColor(…),即WM_CTLCOLOR消息:    
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)    
{
/*
** 这里不必编写任何代码!
**下行代码要注释掉
** HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
*/
return m_brush;        //返加绿色刷子
}

 

 

方法二:

修改对话框的OnPaint,在else中添加如下代码
          CPaintDC dc(this);
          CRect rect;    
          GetClientRect(rect);    
          dc.FillSolidRect(rect, RGB(0,0,0));    
          CDialog::OnPaint();

 

方法三:

在对话框的应用类(App)的.cpp的Initinstance()中加入代码:
               //加在int nResponse=dlg.DoModal(); 的前面
               前一个RGB设置背景色,第二个设置字体颜色
SetDialogBkColor(RGB(0,0,255),RGB(0,255,0));
或this->SetDialogBkColor(0x00);