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;
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/mfreesky/archive/2007/08/27/1760222.aspx