谢谢

解决方案 »

  1.   

    CWnd::OnCtlColor  
    afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );Return ValueOnCtlColor must return a handle to the brush that is to be used for painting the control background.// This OnCtlColor handler will change the color of a static control
    // with the ID of IDC_MYSTATIC. The code assumes that the CMyDialog
    // class has an initialized and created CBrush member named m_brush.
    // The control will be painted with red text and a background
    // color of m_brush.HBRUSH CZilchDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
       // Call the base class implementation first! Otherwise, it may
       // undo what we're trying to accomplish here.
       HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);   // Are we painting the IDC_MYSTATIC control? We can use
       // CWnd::GetDlgCtrlID() to perform the most efficient test.
       if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
       {
          // Set the text color to red
          pDC->SetTextColor(RGB(255, 0, 0));      // Set the background mode for text to transparent 
          // so background will show thru.
          pDC->SetBkMode(TRANSPARENT);      // Return handle to our CBrush object
          hbr = m_brush;
       }   return hbr;
    }
      

  2.   

    一条语句改变对话框背景和文本颜色作者: 龚建伟  2001.08.18
      
        CLabel类可以有选择地改变 Static 静态文本颜色、背景,或将静态文本设置为超链接,但如果对话框全部改成其它统一的背景色和文字颜色,在VC中则只需一条语句。首先下载我做的示例源程序bgtextcolor.ziip:下载(VC6.0,WIN9X/2000) (269提供链接),在压缩包内我还放了个WORD文档的256颜色表,你选择颜色时会非常方便的。下面是详细的编程过程:1. 新建项目:在VC6中用MFC新建一个基于对话框的BgcolorDemo项目,接受所有缺省选项即可;2.写入这条语句就成了:在 BgColorDemo.cpp文件中找到 BOOL CBgColorDemoApp::InitInstance()函数,在如下位置加入SetDialogBkColor设置。BOOL CBgColorDemoApp::InitInstance()
    {
    AfxEnableControlContainer();// Standard initialization
    // If you are not using these features and wish to reduce the size
    // of your final executable, you should remove from the following
    // the specific initialization routines you do not need.#ifdef _AFXDLL
    Enable3dControls(); // Call this when using MFC in a shared DLL
    #else
    Enable3dControlsStatic(); // Call this when linking to MFC statically
    #endifCBgColorDemoDlg dlg;
    m_pMainWnd = &dlg;
    //在这里加入背景颜色的设置,就一条语句,多简单,
    //前一个 RGB设置背景色,第二个RGB设置字体颜色SetDialogBkColor(RGB(000,204,255), RGB(255, 0,0));
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
    // TODO: Place code here to handle when the dialog is
    // dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
    // TODO: Place code here to handle when the dialog is
    // dismissed with Cancel
    }// Since the dialog has been closed, return FALSE so that we exit the
    // application, rather than start the application's message pump.
    return FALSE;
    }