有一基本对话框窗体,在上面放置一个Edit box,
怎样搞能使编辑框中的文本的字体显示为红色或其他颜色。唉,在网上看了一大堆,不知道他们在说什么?简单点啊,能有那么复杂吗?

解决方案 »

  1.   

    我是个新手,你这样说我是听不懂的……
    请说的具体点啊,我要是能听懂你说的“CFont",我想就不在这问了……理解啊……
      

  2.   

    4。背景及文本颜色定义一成员变量CBrush m_brush;        谁的成员变量?OnInitDialog()中进行初始化工作m_brush.CreateSolidBrush(RGB(255,0,0));我怎么找不到这个函数?然后在OnCtrlColor中HBRUSH CAsdfaaaaaaaaaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(nCtlColor==CTLCOLOR_EDIT &&                          pWnd->GetDlgCtrlID()==IDC_EDIT1)//注意此处的(pWnd->),否则没效果
    {
       pDC->SetTextColor(RGB(255,0,0));
       pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
       pDC->SetBkMode(TRANSPARENT);//设置背景透明
       hbr = (HBRUSH)m_brush;
    }return hbr;
    }
      

  3.   

    CClientDC dc(this);
    dc.SetTextColor(RGB(255,0,0)); //红色
    dc.SetTextColor(RGB(255,255,0)); //黄色
    其它颜色只需要改变RGB的值就可以了
      

  4.   

    重载OnCtlColor,可以改变编辑框字体的颜色,下面代码是把编辑框IDC_EDIT字体颜色改为红色:
    HBRUSH CISADlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(((CEdit*)GetDlgItem(IDC_EDIT))->m_hWnd==pWnd->m_hWnd)
    {
    pDC->SetTextColor(RGB(255,0,0));
    }

    return hbr;
    }
      

  5.   

    (kone123) ,请问我该写在哪个文件里呢?怎么通不过呢?
      

  6.   

    在C***Dlg.cpp的C***Dlg::OnCtlColor写,加上:
    if(((CEdit*)GetDlgItem(编辑框ID))->m_hWnd==pWnd->m_hWnd)
    {
    pDC->SetTextColor(RGB(255,0,0));

    就行了
      

  7.   

    “重载OnCtlColor”,怎么重载呢?
    下面那些代码我又该写到那个文件呢?(文件也太多了!!!)
      

  8.   

    找不到C***Dlg.cpp形式的文件
    是不是还要建类 成员变量什么的啊?
      

  9.   

    在classwizard中,让C***Dlg响应WM_CTLCOLOR,然后添加函数并编辑代码,VC会自动为C***Dlg添加OnCtlColor,在这个函数里写就行了
      

  10.   

    找到了,把代码加进去了,但是还是黑色啊,代码下如下:
    HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    if(((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd==pWnd->m_hWnd) 

    pDC->SetTextColor(RGB(255,0,0)); 
      

  11.   

    还是黑的,没变化。代码如下:
    HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    if(((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd==pWnd->m_hWnd) 

    pDC->SetTextColor(RGB(255,225,0)); 
      

  12.   

    你的是“HBRUSH CISADlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ”
    我的是“HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* p”问题是不是在这啊?怎么高的啊
      

  13.   

    CISADlg是工程中对话框名,你的对话框名是CDialg,不会吧