改变视图背景颜色

要想改变窗口的背景颜色有不同的方法,不同方法结果可能都是改变了背景的颜色。

但实际中,有些方法是不可取的,比如有人说的在OnDraw中去改变背景颜色,在应用中常会出现闪烁效果,非常不好。

一般来说,采取下面的两种方法比较好些。

1、在窗口创建之前想改变视图背景色,

方法:

BOOL CCarPlatView::PreCreateWindow(CREATESTRUCT& cs)

{

    // TODO: 在此处通过修改

    //  CREATESTRUCT cs 来修改窗口类或样式

     HBRUSH Brush;

     Brush=CreateSolidBrush(RGB(9,145,9));

     cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,LoadCursor(NULL,IDC_CROSS),Brush,0);

    return CView::PreCreateWindow(cs);

}

 

2、 在类V向导里的View添加WM_ERASEBKGND消息,在其函数OnEraseBkgnd(CDC* pDC)添加如下代码:

BOOL CDrawLineView::OnEraseBkgnd(CDC* pDC)

//这个函数的窗口刷新时自动调用,即可实时变换背景色了
{
// TODO: Add your message handler code here and/or call default
CRect   m_rect;  
GetClientRect(&m_rect);  
CBrush   brush;  
brush.CreateSolidBrush(RGB( , , ));  
pDC->FillRect(&m_rt,&brush);
  
return CView::OnEraseBkgnd(pDC);
}

 

你可能感兴趣的:(VC/MFC)