VC/MFC如何設置對話框背景顏色

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;

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章