在VS2005中, 为什么在对话框中,GroupBox控件的文本颜色怎么改变不了,背景色也改变不了,它的ID我也改过来了为IDC_LINE,
    if(pWnd->GetDlgCtrlID()==IDC_LINE)
{
 pDC->SetTextColor(RGB(255,0,0));
          pDC->SetBkColor(RGB(255,255,0));
}

解决方案 »

  1.   

    设置完了,还要重画一下控件,pWnd->Invalidate()
      

  2.   

    应该不是你那样的,应该是返回一个刷子句柄吧。
    下面的代码是我用的,是有效果的。你可以看看。HBRUSH CUserLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(m_bPasswordState)
    {
    if(pWnd->GetDlgCtrlID() == IDC_EDITPASSWORD)
    {
    pDC->SetBkMode(TRANSPARENT );   
    pDC->SetBkColor(RGB(255,255,255));   
    hbr = CreateSolidBrush(RGB(255,255,255));   
    } return hbr;
    } if(pWnd->GetDlgCtrlID() == IDC_EDITPASSWORD)
    {
    pDC->SetBkMode(TRANSPARENT );   
    pDC->SetBkColor(RGB(255,0,0));   
    hbr = CreateSolidBrush(RGB(100,100,100));   
    }
    return hbr;
    }
      

  3.   


    HBRUSH CMyDLG::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(pWnd->GetDlgCtrlID()==IDC_LINE)
    {
    pDC->SetTextColor(RGB(255,0,0));
    pDC->SetBkColor(RGB(255,255,0));
    return m_brush;
    }
    return m_brush;

    }
    有返回画刷,就是改变不了字体的颜色
      

  4.   

    我上面就这个就能实现啊
    if(pWnd->GetDlgCtrlID()==IDC_STATIC)
    {
       pDC->SetTextColor(RGB(0,123,125));
       pDC->SetBkColor(RGB(0,255,0));
    }