MFC 如何改變對話框的默認背景顏色(轉)


下面介紹三種方法:實現改變對話框的默認背景顏色:

 
(1)可以在CLotteryApp::InitInstance()設置更新對話框的背景顏色
      調用SetDialogBkColor(RGB(160,32,240)) 即可以改變背景顏色 
 
        注意這里繪制的顏色是針對程序中所有的對話框 
       SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));
        前一個RGB是背景色,后一RGB是文本顏色
   (2)也可以再CLotteryDlg::OnPaint() 函數里的 else 之后括號里插入如下代碼:
 
        CRect rect; 
        CPaintDC dc(this); 
        GetClientRect(rect); 
        dc.FillSolidRect(rect,RGB(189,250,200));  顏色可以自己隨便設置
 
 
  (3) 利用ClassWizard重載OnCtlColor(),即WM_CTLCOLOR消息
   在要着色的對話框中申明一個變量,CBRUSH  m_hbrush;然后在項目的Dlg類初始化函數中給m_hbrush賦值。
m_brush.CreateSolidBrush(RGB(0, 255, 0));
然后在OnCtlColor(...)返回該畫刷就可以了,如下。
HBRUSH CLotteyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 
 
 switch (nCtlColor)
 {
 case CTLCOLOR_DLG:
  HBRUSH aBrush;
  aBrush = CreateSolidBrush(RGB(0, 150, 0));
  hbr = aBrush;
  break;
 }
  
 return hbr;
}
 
再介紹一下:如何清空編輯框里的內容
 
    清空指定的編輯框內容:SetDlgItemText(IDC_EDIT,""); //更新編輯框里的內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM