重载CWnd的OnCtlColor,注意返回一个brush的HANDLE,这个HANDLE将用于重画窗口.具体参阅MSDN

解决方案 »

  1.   

    BOOL CMyDlg::OnEraseBkgnd(CDC* pDC)
    {
    }
      

  2.   

    HBRUSH CTestDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
         CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
         return RGB(x,y,z);
    }
      

  3.   

    HBRUSH CTestDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
         CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
         return ::CreateSolidBrush(RGB(x, y, z));
    }
      

  4.   

    最简单的方法:
     在CYourApp::Instance()函数里,
     在对话框DoModal()之前加上一句:
     SetDialogBkColor(.....);即可。