如何改变Static Text控件中文字的字体,字体大小及颜色。
最近做一项目需要改变Static text 中文字的字体大小及颜色,MFC中默认的没有这一功能,没法实现,要实现它怎么办呢?其实很简单:
1:需要在OnCreate()事件中创建你所需的字体,然后和所要改变的Static Text 控件ID 关联。
2:改变颜色,需要添加WM_CTLCOLOR消息,即在OnCtlColor()事件函数中改变其颜色。
代码如下:
CFont font;
int CKeyBoardTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1;
// TODO: Add your specialized creation code here
font.CreateFont(95, //设置静态对话框的字体大小 0,0,0,FW_NORMAL, //设置字体颜色 FALSE,FALSE, 0, ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, _T("Arial")); //设置字体
CWnd* pWnd = GetDlgItem(IDC_STATICOK);//ID换成自己的
pWnd->SetFont(&font); //使设置运用
return 0;
}
HBRUSH CKeyBoardTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID() == IDC_STATICOK)
{//IDC_STATIC_TEST是控件的ID
pDC->SetTextColor(RGB(255,0,0));//用RGB宏改变颜色
} // TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}