1. 程式人生 > >MFC中一種改變靜態文字顏色的方法

MFC中一種改變靜態文字顏色的方法

步驟如下:

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);//更新文字,文字"裝置已連線”顏色變為綠色

            }