如题,我所建的工程名叫My3D,根据网上说的在CMy3DApp下的BOOL CMy3DApp::InitInstance()下加入了这句:SetDialogBkColor(RGB(0,0,255),RGB(0,255,0)); 
可是加进去后没有效果,请高人指点。

解决方案 »

  1.   

    有效果啊BOOL CTestApp::InitInstance()
    {
    AfxEnableControlContainer();
    #ifdef _AFXDLL
    Enable3dControls(); // Call this when using MFC in a shared DLL
    #else
    Enable3dControlsStatic(); // Call this when linking to MFC statically
    #endif
    SetDialogBkColor(RGB(0,0,255),RGB(0,255,0));  CTestDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
      

  2.   

    SetDialogBkColor好像不用了吧HBRUSH CXXXX::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(nCtlColor == CTLCOLOR_DLG) {
                HBRUSH h = CreateSolidBrush(RGB(240,230,211)); 
                return h;
    }
    return hbr;
    }
      

  3.   

    SetDialogBkColor这个函数在vc6以及以前是有用的,从vc7开始已经被废除了!
    可以在每个对话框里重载OnCtlColor函数改变颜色
      

  4.   

    你的代码没问题的,关键是看你用什么版本的VC开发了。
    一般可以用重载对话框OnCtlColor消息的方法实现,如下HBRUSH CXXXX::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {  
    if(nCtlColor == CTLCOLOR_DLG) { 
                HBRUSH h = CreateSolidBrush(RGB(255,0,0)); //对话框背景为红色
                return h; 

    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    return hbr; //这2句要放最后,否则会导致资源泄露!