2009年6月9日 星期二

MFC 學習筆記,改變Static Text的顏色、背景色

在類別,右鍵,選擇屬性

image

在屬性視窗 的訊息 WM_CTLCOLOR 加入消息函數

OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

WMCTLCOLOR

在函數中加入對應程式碼:

if (pWnd->GetDlgCtrlID()==IDC_STATIC_S_TEXT)
{
pDC->SetTextColor(m_textColor); //設置字體顏色
pDC->SetBkMode(TRANSPARENT); //設置字體背景為透明
// TODO: Return a different brush if the default is not desired
return (HBRUSH)::GetStockObject(WHITE_BRUSH); // 設置背景色
}
else
return hbr;
其中,m_textColor是全域變數,要動態更改的方法為,在Button Click時加入:
SetDlgItemText(IDC_STATIC_S_TEXT,"OPENED");
m_textColor = RGB(255, 0, 0) ;
GetDlgItem(IDC_STATIC_S_TEXT)->RedrawWindow();
//GetDlgItem(IDC_STATIC_S_TEXT)->InvalidateRect(NULL);
設定全域變數m_textColor新的顏色, 然後呼叫RedrawWindow()或是InvalidateRect(NULL)重繪。

沒有留言: