如题!程序为对话框文档.试过:
GetDlgItem(IDC_EDIT_PROCESS_DISPLAY)->GetDC()->SetTextColor(0x000004ec);和
GetDlgItem(IDC_EDIT_PROCESS_DISPLAY)->GetDC()->SetTextColor(RGB(236,4,33));
没反应!
注:"IDC_EDIT_PROCESS_DISPLAY"是Edit控件ID.
   "0x000004ec"和"RGB(236,4,33)"均为红色.
希望大侠指点,谢谢!

解决方案 »

  1.   


    映射WM_CTLCOLOR函数
    HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
       HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
       if (pWnd->GetDlgCtrlID() == IDC_EDIT1)
       {
          // Set the text color 
          pDC->SetTextColor(RGB(0,0,255));
       }
       return hbr;
    }
      

  2.   

    谢谢,不过要怎么触发WM_CTLCOLOR消息呢?
    是要自己向对话框发送这个消息吗SendMessage()?
      

  3.   

    还有有点不明白,系统什么时候会调用它?
    我现在是想根据条件来变化控件字体的颜色,
    比如说:
    if(条件1)
    {
        设置颜色1;
    }
    else if(条件2)
    {
        设置颜色2;
    }
    else 
    {
       设置颜色3;
    }
    可以吗,希望大家指点!谢谢
      

  4.   

    1.自己提供的dc无法改变edit的文本颜色(可以改变textout的颜色).必须使用系统提供的.
    2.OnCtlColor中的dc就是系统提供的.
    3.OnCtlColor对应WM_CTRLCOLOR消息
      

  5.   

    OnCtlColor 的WM_CTRLCOLOR消息  
      HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  signoft(晴天)  那样做就可以了~
    你要说明你的EDIT 是什么地方的,如果是视图上的EDIT   你要自己手动的加~, 和加其他自己定义的消息一样加~