在MFC中,static text控件可以很方便的显示文字,但是如果想修改字体风格大小以及颜色,应该怎么修改呢?
1.要修改字体,需要用到CFont类,这个类可以修改字体的各种属性
1 CFont m_font; 2 m_font.CreateFont(14,0,0,0,FW_BOLD,FALSE,FALSE,FALSE, 3 ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, 4 DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,_T("宋体"));//宽度为14、粗体的宋体字符
2.重载WM_CTLCOLOR消息的响应函数,框架在将要绘制子控件时调用此函数,我们可以在这个消息的响应函数里添加代码来绘制我们的控件
1 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 2 { 3 pDC->SelectObject(&m_font);//选择字体 4 }
3.修改颜色,也是在OnCtlColor函数中
1 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 2 { 3 pDC->SetTextColor(RGB(255, 0, 0));//用RGB宏改变颜色
4 }
4.最终代码
1 HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 2 { 3 HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); 4 5 // TODO: 在此更改 DC 的任何特性 6 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 7 { 8 pDC->SetTextColor(RGB(255, 0, 0));//用RGB宏改变颜色 9 pDC->SelectObject(&m_font); 10 } 11 // TODO: 如果默认的不是所需画笔,则返回另一个画笔1 12 return hbr; 13 }
5.效果图