00000020.txt

来自「水木清华BBS站的讨论区精华集锦」· 文本 代码 · 共 82 行

TXT
82
字号
 
                       --===BBS水木清华站∶精华区===--
 
                        -===BBS水木清华站∶精华区===-
 -------------------------------------------------- 
    How change the background color of a view? 
 -------------------------------------------------- 
  
 To change the background color for a CView, CFrameWnd, or CWnd object, 
 process 
 the WM_ERASEBKGND message. The following code shows how: 
  
  
 BOOL CSampleView::OnEraseBkgnd(CDC* pDC) 
  
 { 
         // Set brush to desired background color 
  
         CBrush backBrush(RGB(255, 128, 128)); 
  
         // Save old brush 
  
         CBrush* pOldBrush = pDC->SelectObject(&backBrush); 
  
         CRect rect; 
  
         pDC->GetClipBox(&rect);     // Erase the area needed 
  
         pDC->PatBlt(rect.left, rect.top, rect.Width(), 
  
         rect.Height(), PATCOPY); 
  
         pDC->SelectObject(pOldBrush); 
  
         return TRUE; 
  
 } 
 I solved the problem like this-> 
  
 HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
 { 
  
         switch (nCtlColor) 
  
         { 
  
                 case CTLCOLOR_BTN: 
  
                 case CTLCOLOR_STATIC: 
  
                 { 
  
                         pDC->SetBkMode(TRANSPARENT); 
  
                 } 
  
                 case CTLCOLOR_DLG: 
  
                 { 
  
                         CBrush*         back_brush; 
  
                         COLORREF        color; 
  
                         color = (COLORREF) GetSysColor(COLOR_BTNFACE); 
  
                         back_brush = new CBrush(color); 
  
                         return (HBRUSH) (back_brush->m_hObject); 
  
                 } 
  
         } 
  
         return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor)); 
  
 } 
  
 Tim, tfiner@vrli.com, [tfiner@vrli.com,]  email, 9/10/95 
 
                        -===BBS水木清华站∶精华区===-

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?