MFC中一種改變靜態文字顏色的方法
步驟如下:
1、新增全域性變數:
在.cpp檔案中新增全域性變數宣告:
BYTE R,G,B;
2、手動新增OnCtlColor()函式
在.h檔案中新增函式宣告:
afx_msg HBRUSH OnCtlColor(CDC*pDC, CWnd* pWnd, UINT nCtlColor);
在
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)//控制元件
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);//更新文字,文字"裝置已連線”顏色變為綠色
}