怎么改变窗体的颜色呢?最好贴出源码,谢谢!!

解决方案 »

  1.   

    在InitInstance()里加入SetDialogBkColor()SetDialogBkColor(RGB(220,220,220),RGB(0,0,0));
      

  2.   

    添加WM_ERASEBKGND事件,OnEraseBkgnd(CDC* pDC)      CBrush brush(RGB (250,250,250));
         CBrush* pOldBrush = pDC->SelectObject (&brush);
         CRect rcClip; 
     pDC->GetClipBox(&rcClip);
         pDC-> PatBlt(rcClip.left , rcClip.top ,rcClip.Width() , rcClip.Height() ,PATCOPY );
         pDC-> SelectObject (pOldBrush );
         return TRUE;
      

  3.   

    先新建一个画刷
    public:
        CBrush    m_brush;在OnCtlColor(继承下来的)函数返回该画刷
    HBRUSH CPaAlarmDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd,nCtlColor);
             
        m_brush.CreateSolidBrush(RGB(255,0,0));        
           return m_brush;
    }颜色是改变了,但这段代码运行时出现错误,为什么?
      

  4.   

    你是要改变某个控件的背景色吧??而不是窗体的背景色,,,,,,,,单单上面的代码是没问题的,
    只是 m_brush.CreateSolidBrush(RGB(255,0,0)); 
    HBRUSH hBr =CreateSolidBrush(RGB(255,0,0));
    return (HBRUSH)hBr;用局部变量就OK了吧??如果还有错 那就不一定是这个响应函数出错了