RT,谢谢

解决方案 »

  1.   

    //用下面的代码,可以实现修改窗体的背景为白色
    void CUuiiDlg::OnPaint() 
    {
    if (IsIconic())
    {  } else
    {
           //修改窗体背景颜色
           CRect rect;
           CPaintDC dc(this);
           GetClientRect(rect);       //设置为白色背景
           dc.FillSolidRect(rect,RGB(255,255,255));     CDialog::OnPaint();
    }
    }
      

  2.   

    在C**APP类
    InitInstance中加入下面一句即可。
    SetDialogBkColor(RGB(0xc3,0xd3,0xfd),RGB(50,50,50));
      

  3.   

    这个要看是什么窗体了:)如果是框架视图窗体,可以用背景填充的方式,重载OnEraseBkgnd。// 头文件中:
    afx_msg BOOL OnEraseBkgnd(CDC* pDC);
    // 源文件中:
    BEGIN_MESSAGE_MAP
    ON_WM_ERASEBKGND()
    END_ME_MAP()BOOL OnEraseBkgnd(CDC* pDC)
    {
        CRect rcClient;
        GetClientRect(&rcClient);    pDC->FillSolidRect(rcClient, RGB(192,192,192)); // 银色背景    return TRUE;
    }
      

  4.   

    注:不要在OnPaint()中填充背景,这个是绘制前景的。视图窗体和对话框窗体都可以重载OnCtlColor来改变背景:// 头文件中
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    // 源文件中
    BEGIN_MESSAGE_MAP()
        ON_WM_CTLCOLOR()
    END_ME_MAP()HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        if (nCtlColor == CTLCOLOR_DLG)
        {
            return 你自己的画刷句柄;
        }
        return __super::OnCtlColor(pDC, pWnd, nCtlColor)
    }