1. 程式人生 > >MFC中設定Label控制元件的背景色、字型、字號和顏色

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的背景色、字型、字型大小和字型顏色了。