您的位置:首页 > 其它

MFC中设置Label控件的背景色、字体、字号和颜色

2016-06-22 11:26 771 查看
实际的应用中,可以用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的背景色、字体、字体大小和字体颜色了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vc mfc 控件