请问高手:如何修改EDIT控中文字的颜色呢?如果要设置为倾斜呢??谢谢了。

解决方案 »

  1.   

    在对话框中重置OnCtlColor函数
    HBRUSH CAboutBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    if( pWnd->GetDlgCtrlID()==IDC_EDIT1 )
    {
    pDC->SetTextColor( colorSelect );
    pDC->SetBkColor( colorSelect );
    HBRUSH hBr = CreateSolidBrush(colorSelect); // 背景色
    return (HBRUSH) hBr;};
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  2.   

    呵呵,楼上给解决了。不过请问一下,
           HBRUSH hBr = CreateSolidBrush(colorSelect); // 背景色
    一句是否有必要。小子也是初学者,请指教。
      

  3.   

    改变对话框的外观  我们可以改变对话框的背景颜色,或对话框中的控件颜色以使得程序界面不至于千篇一律,如何做呢?每个控件和对话框在显示之前回发送WM_CTLCOLOR消息,如果派生对话框类对WM_CTLCOLOR消息进行了映射,就可以设定文本的前景色和背景色。同时还可以为控件或对话框的非文本区域选择一个刷子。  WM_CTLCOLOR消息对应的函数为OnCtlColor,OnCtlColor函数的原型为:afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );其中参数pDC是:一个指向设备环境的指针。pWnd:指定特定的控件。nCtlColor:指明控件类型。 可以有以下类型:CTLCOLOR_BTN button control
    CTLCOLOR_DLG dialog box
    CTLCOLOR_EDIT edit control
    CTLCOLOR_LISTBOX list box
    CTLCOLOR_MSGBOX message box
    CTLCOLOR_SCROLLBAR scroll bar
    CTLCOLOR_STATIC static text, frame, or rectangle现在为了突出显示文本框的显示号码,我们将文本框的文字背景设为黄色。步骤1、添加一个成员变量 HBRUSH m_hBrush;
    步骤2、用Class Wizard为CGuessDlg加入WM_CTLCOLOR消息,并编辑OnCtlColor函数:HBRUSH CGuessDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    if(nCtlColor==CTLCOLOR_EDIT){
    pDC->SetBkColor (RGB(255,255,0));//EDIT控件文字背景为黄色
    return m_hBrush;
    }
    return CDialog::OnCtlColor (pDC,pWnd,nCtlColor);
    }编译运行,怎么样,文本框内的文字均变为黄底了。关于对话框的外观我们将在以后再说。
      

  4.   

    HBRUSH hBr = CreateSolidBrush(colorSelect); // 背景色
    可以直接改成你需要的颜色:(RGB(255,255,0))
    用我提供的办法试试吧,很简单。。
      

  5.   

    关于设置斜体,可以这样做:
    在dialog类中加入变量 CFont m_editFont,然后在OnInitialDialog中加入如下语句:
      m_editFont.CreateFont(-14, 0, 0, 0, 400, TRUE, FALSE, 0,\
    ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, \
    DEFAULT_QUALITY, DEFAULT_PITCH|FF_SWISS, "Arial"); //设置了斜体
      CEdit* pEdit=(CEdit*)GetDlgItem(YOUR_EDIT_ID);
      pEdit->SetFont(&editFont);
    就可以了。
      

  6.   

    我是想设置EDIT文字的颜色,而不是一楼所说的EDIT背颜色啊!
      

  7.   

    pDC->SetTextColor( colorSelect ); //设置文字颜色
    pDC->SetBkColor( colorSelect );  //设置文字背景颜色
    HBRUSH hBr = CreateSolidBrush(colorSelect); // 设置EDIT 编辑框底色