如何改变视窗的背景颜色

解决方案 »

  1.   

    SetClassLong(m_pWnd->hWnd, HBRUSH, 想要的颜色);
      

  2.   

    Windows向窗口发送一个WM_ERASEBKGND消息通知该窗口擦除背景,可以使用
    ClassWizard重载该消息的缺省处理程序来擦除背景(实际是画),并返回TRUE以
    防止Windows擦除窗口。
    //Paint area that needs to be erased.
    BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)     BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)
    {
    // Create a pruple brush.
    CBrush Brush (RGB (128 , 0 , 128) );// Select the brush into the device context .
    CBrush* pOldBrush = pDC—>SelcetObject (&brush);// Get the area that needs to be erased .
    CRect reClip ;
    pDC—>GetCilpBox (&rcClip);//Paint the area.
    pDC—> PatBlt (rcClip.left , rcClip.top ,
            rcClip.Width ( ) , rcClip.Height ( ) , PATCOPY );//Unselect brush out of device context .
    pDC—>SelectObject (pOldBrush );// Return nonzero to half fruther processing .
    return TRUE;
    }