zoukankan      html  css  js  c++  java
  • 修改view类的背景色

    若要改变CView,CFrameWnd或CWnd对象的背景颜色需要处理WM_ERASEBKGND消息,下面就是一个范例代码:

     1 BOOL   CSampleView::OnEraseBkgnd(CDC*   pDC)   
     2 {   
     3 
     4     //设置brush为希望的背景颜色 
     5     CBrush   backBrush(RGB(255,   128,   128));   
     6 
     7     //保存旧的brush   
     8     CBrush*   pOldBrush   =   pDC-> SelectObject(&backBrush);   
     9     CRect   rect;   
    10     pDC-> GetClipBox(&rect);   
    11 
    12     //画需要的区域 
    13     pDC-> PatBlt(rect.left,   rect.top,   rect.Width(),   rect.Height(),   PATCOPY);   
    14     pDC-> SelectObject(pOldBrush);   
    15 
    16     return   TRUE; 
    17 
    18 }   

    若要改变CFromView继承类的背景颜色,下面是一个范例代码:

     1 HBRUSH   CMyFormView::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)   
     2 { 
     3 
     4     switch   (nCtlColor)   
     5     {   
     6 
     7     case   CTLCOLOR_BTN:   
     8     case   CTLCOLOR_STATIC:   
     9         {   
    10 
    11             pDC-> SetBkMode(TRANSPARENT);   
    12             //不加任何处理或设置背景为透明 
    13 
    14         }   
    15     case   CTLCOLOR_DLG:   
    16         {   
    17 
    18             CBrush*   back_brush;   
    19             COLORREF   color;   
    20             color   =   (COLORREF)   GetSysColor(COLOR_BTNFACE);   
    21             back_brush   =   new   CBrush(color);   
    22             return   (HBRUSH)   (back_brush-> m_hObject); 
    23 
    24         } 
    25 
    26     }   
    27 
    28     return(CFormView::OnCtlColor(pDC,   pWnd,   nCtlColor)); 
    29 
    30 } 
    本博客所有博文,若无专门说明皆为原创,转载请注明作者和出处!
  • 相关阅读:
    写在noi之前
    雅礼集训 Day8
    雅礼集训 Day6
    雅礼集训 Day5
    2017雅礼集训 Day4
    2017雅礼集训 Day2
    2017雅礼集训 Day1
    洛谷 P3426 [POI2005]SZA-Template
    Codeforces Round #368 DIV2 C.
    Educational Codeforces Round 16 D&E.
  • 原文地址:https://www.cnblogs.com/ifinver/p/2711639.html
Copyright © 2011-2022 走看看