MFC中設定Label控制元件的背景色、字型、字號和顏色
實際的應用中,可以用WM_CTLCOLOR 訊息改變mfc中控制元件的顏色,比如現在就來改變一個static text控制元件的
字型、字型大小、字型顏色和背景色。
例如對話方塊的類為CTestDlg.
1. 在對話方塊的類中新增兩個變數.
方法:在classview選項卡中,選擇CTestDlg,右鍵,add member variable.
CBrush m_brush;
CFont m_font;
在OnInitDialog()函式中新增:
// TODO: ……
m_font.CreatePointFont(150,"華文行楷");//代表15號字型,華文行楷
m_brush.CreateSolidBrush(RGB(0,255,0));//畫刷為綠色
2 新增WM_CTLCOLOR 訊息響應,新增的方法為:
add windows message handler->WM_CTLCOLOR->add and edit
3 在HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 函式中的todo後新增程式碼,即:
,
HBRUSH CYourDlg::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_STATICText)
{
pDC->SetBkColor(RGB(0,255,0));//背景色為綠色
pDC->SetTextColor(RGB(255, 0, 0));//文字為紅色
pDC->SelectObject(&m_font);//文字為15號字型,華文行楷
return m_brush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
這樣就可以改變static text的背景色、字型、字型大小和字型顏色了。