改变对话框颜色
BOOL CMyApp::InitInstance()
{
   // Standard initialization   SetDialogBkColor();        // Set dialog background color to gray
   LoadStdProfileSettings();  // Load standard INI file options (including MRU)   // ...
}

解决方案 »

  1.   

    1 return HBRUSH;
    2 For Dialog, use WM_ERASEBKGRND
      

  2.   

    当然是在构造函数里
        m_Yellow=::create............;
        m_Red...=::create............
     就行了  ,函数自己去查
      

  3.   

    我在BOOL CMycppDlg::OnInitDialog()中初始化如下变量:
    m_hRedBrush=HBRUSH(RGB(255,0,0));
    m_hYellowBrush=HBRUSH(RGB(255,255,0));经调试发现HBRUSH CMycppDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    也被正确调用,但就是改变不了颜色,Why?另按照prog_st(st)说的,在
    BOOL CMyApp::InitInstance()中执行
      SetDialogBkColor(); 
    可以改变对话框颜色,但我还想根据需要改变控件的颜色。
    望各位高手继续指点,谢谢!        
      

  4.   

    你创建的m_hRedBrush和m_hYellowBrush算是什么东西???
    你应该这样声明m_hRedBrush和m_hYellowBrush:CBrush m_hRedBrush;
    然后在OnInitDialog中这样写:m_hRedBrush = CreateSolidBrush(HBRUSH(RGB(255,0,0));
    最后在OnCtlColor中这样写:if(nCtlColor == CTLCOLOR_DLG) return (HBRUSH)m_hRedBrush;至于控件的背景颜色,我发现在OnCtlColor中只能改掉CTLCOLOR_MSGBOX和CTLCOLOR_EDIT,而对其他的控件似乎无效,不知这是为什么。
      

  5.   

    那倒不是,改不了得的只是Button而已。
      

  6.   

    处理WM_ERASEBKGRND 在其中画上新的颜色。