天天看點

VC/MFC如何設定對話框背景顔色

VC/MFC如何設定對話框背景顔色

2007-06-19 19:57

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;