zoukankan      html  css  js  c++  java
  • 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,""); //更新编辑框里的内容
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/zhangwuji/p/5547983.html
Copyright © 2011-2022 走看看