在OnInitDialog()中将ShowWindow(SW_SHOWMAXIMIZED),使得程序运行后对话框最大化,重载OnCtlColor   (CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor),将背景色改变,但是运行结果是对话框最大化了,背景色没有完全改变,只有列表框跟编辑框的颜色变了,不知道为什么,请高手赐教   

解决方案 »

  1.   

    第一,你是怎么改背景色的
    第二,改背景色你可以重载OnEraseBkgnd
      

  2.   

    OnCtlColor  (CDC*  pDC,  CWnd*  pWnd,  UINT  nCtlColor)是对控件的
    对于对话框本身的颜色,需要在对话框中的WM_ERASEBKGND消息中来绘制的
      

  3.   

    明显,你重载错了函数,OnCtlColor是用于更改控件颜色的,要更改对话框背景颜色应重载OnEraseBkgnd函数才对。
      

  4.   

    HBRUSH CEvaluation1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    return m_blue;
    }
    在没有添加ShowWindow(SW_SHOWMAXIMIZED)之前,我用return m_blue;之后,对话框的颜色就变了。
    没有用到重载OnEraseBkgnd,我试试,谢谢哦