zoukankan      html  css  js  c++  java
  • MFC OnCtlColor函数用来改变控件颜色


    MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd
    *pWnd,UINT nCtlColor);




              
    参数nCtlColor用于指定控件的类型,可以是:
               .CTLCOLOR_BTN               
    按钮控件
               .CTLCOLOR_DLG               
    对话框
               .CTLCOLOR_EDIT               编辑框
               .CTLCOLOR_LISTBOX           
    列表控件
               .CTLCOLOR_MSGBOX            
    消息控件
               .CTLCOLOR_SCROLLBAR 滚动条控件
               .CTLCOLOR_STATIC            
    静态控件




          假设你已有了名为My的对话框工程.你有了一个STATIC的控件,ID为IDC_STATIC1.
      HBRUSH
    CMyDlg
    ::OnCtlColor(CDC*
    pDC, CWnd*
    pWnd, UINT nCtlColor)
               {
            HBRUSH hbr
    = CDialog::OnCtlColor(pDC,
    pWnd, nCtlColor);
     
           // TODO: Change any
    attributes of the DC here

               if (nCtlColor==CTLCOLOR_STATIC)


                  {
                        pDC->SetTextColor(RGB(255,0,0));
      //字体颜色
                        pDC->SetBkColor(RGB(0, 0,
    255));
       //字体背景色 


                    }
           // TODO: Return a different brush if the default is not desired
            return hbr;
               }



    如果要指定某个特定控件可以这样写:ID为IDC_STATIC1


    if (pWnd->GetDlgCtrlID()==IDC_STATIC1)
    {
           pDC->SetTextColor
    (
    RGB(255,0,0));  //设置字体颜色
           pDC->SetBkMode(TRANSPARENT); //设置字体背景为透明
    // TODO: Return a
    different brush if the default is not desired

      return (HBRUSH)::GetStockObject(BLACK_BRUSH);  // 设置背景色
    }
    else
    return hbr;


    【注】


    BLACK_BRUSH:黑色


    WHITE_BRUSH:白色


    GRAY_BRUSH:灰色


    NULL_BRUSH:透明


    HOLLOW_BRUSH :透明


    from:http://blog.csdn.net/wny198816/article/details/6784523

  • 相关阅读:
    LeetCode 1110. Delete Nodes And Return Forest
    LeetCode 473. Matchsticks to Square
    LeetCode 886. Possible Bipartition
    LeetCode 737. Sentence Similarity II
    LeetCode 734. Sentence Similarity
    LeetCode 491. Increasing Subsequences
    LeetCode 1020. Number of Enclaves
    LeetCode 531. Lonely Pixel I
    LeetCode 1091. Shortest Path in Binary Matrix
    LeetCode 590. N-ary Tree Postorder Traversal
  • 原文地址:https://www.cnblogs.com/lidabo/p/3040688.html
Copyright © 2011-2022 走看看