增加消息 WM_CTLCOLOR 处理函数onctlcolor()
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if (nCtlColor==CTLCOLOR_EDIT   )
         {
            获取测CEdit空件的指针;
            设置颜色;
         }

// TODO: Return a different brush if the default is not desired
return hbr;
}

解决方案 »

  1.   

    http://www.csdn.net/develop/read_article.asp?id=9603
      

  2.   

    用edit控件的方法也可以实现,
    CEdit m_edit;
    m_edit=GetDlgItem(CTLCOLOR_EDIT );
    m_edit.SetTextWindow(RGB());
    就可以了
      

  3.   

      你可派生一个CEdit类
      

  4.   

    // 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;
    }