您的位置:首页 > 其它

改变对话框的背景色的几种方法

2011-10-25 17:14 190 查看
改变对话框的几种常用方法如下:方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 值得注意的是:在调用DoModal()之前必须先调用SetDialogBkColor,且此方法是将改变应用程序中所有的对话框颜色,并不能针对某一个指定的对话框,并且这个方法在5.0以后的版本中已经不支持。方法二:重载OnPaint(),即WM_PAINT消息。有关代码如下:
if   (IsIconic())
…       else
{
CRect   rect;
CPaintDC   dc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(0,255,0));     //设置为绿色背景
CDialog::OnPaint();
}
方法三:重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。在相应函数中,直接返回我们预先创建的画刷。
HBRUSH CFasonDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return m_brMine;
}
HBRUSH   CExampleDlgDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor){HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);//在这加一条是否为对话框的判断语句if(nCtlColor   ==CTLCOLOR_DLG)return   m_brush;       //返加绿色刷子return   hbr;}
前者使全部都变成我们指定的颜色,后者可以进行区分。

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