我的静态控件关联了一个字符型变量,我想改变字体的颜色应该怎么做?

解决方案 »

  1.   

    响应对话框的WM_CTLCOLOR消息:   
      BRUSH   CXXXDlg::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_STATIC1)   
      {   
      pDC->SetTextColor(RGB(255,0,0));   
      pDC->SetBkMode(TRANSPARENT);   
      return   m_brush;   
      }   
      if(pWnd->GetDlgCtrlID()==IDC_STAIIC2)   
      {   
      pDC->SetTextColor(RGB(255,0,0));   
      pDC->SetBkMode(TRANSPARENT);   
      //pDC->SetBkColor(RGB(0,255,0));   
      return   m_brush;   
      }   
      }   
      

  2.   

    首先从 CStatic派生一个类, CColorStatic, 然后在里面实现 使用颜色 显示
    导出成员函数 SetTextColor()然后,你界面上的控件用这个类关联CColorStatic m_ctlTest;
    ctlTest.SetTextColor( RGB( XXXXXX) );
      

  3.   

    改变颜色时调用Invalidate刷新控件。窗口响应WM_CTLCOLOR消息,判断出是要设置颜色的控件时pDC->SetTextColor。
      

  4.   

    BRUSH  CXXXDlg::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_YOURSTATIC1)  
      {  
      pDC->SetTextColor(RGB(200,220,0));  
      pDC->SetBkMode(TRANSPARENT);  
      return  m_brush;  
      }
    }