您的位置:首页 > 其它

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

2013-03-14 00:23 393 查看
1.

重载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; //返加绿色刷子

}

2.

修改对话框的OnPaint,在else中添加如下代码

CPaintDC dc(this);

CRect rect;

GetClientRect(rect);

dc.FillSolidRect(rect, RGB(0,0,0));

CDialog::OnPaint();

3.

在对话框的应用类(App)的.cpp的Initinstance()中加入代码:

//加在int nResponse=dlg.DoModal();

前一个RGB设置背景色,第二个设置字体颜色

SetDialogBkColor(RGB(0,0,255),RGB(0,255,0));

4.

1.在对话框类中添加成员变量:

public:

CBrush m_brushBlue;

2.在对话框类的OnInitDialog()中添加代码:

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

3.用ClassWizard在对话框类中添加成员函数OnCtlCollor(),并在其中添加代码:

if(nCtlColor==CTLCOLOR_DLG)

return m_brushBlue;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: