您的位置:首页 > 其它

MFC中一种改变静态文本颜色的方法

2014-11-02 21:05 260 查看
步骤如下:

1、添加全局变量:

      在.cpp文件中添加全局变量声明:

      BYTE R,G,B;

2、手动添加OnCtlColor()函数

      在.h文件中添加函数声明:

      afx_msg HBRUSH OnCtlColor(CDC*pDC, CWnd* pWnd, UINT nCtlColor);

     在.cpp文件中添加:
     BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog) 
      ... 

     ON_WM_CTLCOLOR()

     ...

     END_MESSAGE_MAP()

     //函数实现
    HBRUSH CTestDlg::OnCtlColor(CDC* pDC,CWnd* pWnd, UINT nCtlColor)

   {

      HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd, nCtlColor);

      if (pWnd->GetDlgCtrlID()==IDC_STATIC)//控件ID

          pDC->SetTextColor(RGB(R,G,B)); //设置颜色
     return hbr;

   }

3、在相应函数体中改变R,G,B的值,使文本颜色满足要求

        如:

           void CTestDlg::OnChangeTextColor()

           {

               SetDlgItemText(IDC_STATIC,"设备已连接");

               R=0;

               G=255;

               B=0;

               Invalidate(FALSE);//更新文本,文本"设备已连接”颜色变为绿色

            }

 

             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: