准备工作:
1、如何设置Static Text实现居中:
选择Static Text控件的属性,找到以下两个属性:
Align Text: 水平文本,选择 center,实现左右居中
Center Image:选择True,实现水平居中
2,设置颜色、大小、字体
定义CFont 型变量,实现字体大小和颜色的设置
CFont m_font1,m_font2;
m_font1.CreatePointFont(100, _T("华文琥珀"));
m_font2.CreatePointFont(100, _T("微软雅黑"));
3,给Dlg添加消息响应函数:
HBRUSH CMFCtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
编程实现:
1,添加两个Button控件和一个Static Text 控件
CFont m_font1,m_font2;
BOOL m_bBlue;
BOOL m_bRed;
3,在BOOL CMFCtestDlg::OnInitDialog()中给m_font 初始化
//修改字体
m_font1.CreatePointFont(100, _T("华文琥珀"));
//修改字体
m_font2.CreatePointFont(100, _T("微软雅黑"));
4,给两个Button控件添加消息响应代码
/// 红色
void CMFCtestDlg::OnBnClickedBtnRed()
{
//颜色
m_bBlue = FALSE;
m_bRed = TRUE;
GetDlgItem(IDC_STATIC_TEXT)->Invalidate();
return;
}
蓝色
void CMFCtestDlg::OnBnClickedBtnBlue()
{
//颜色
m_bBlue = TRUE;
m_bRed = FALSE;
GetDlgItem(IDC_STATIC_TEXT)->Invalidate(NULL);
return;
}
5,在HBRUSH CMFCtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中添加代码
HBRUSH CMFCtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if(IDC_STATIC_TEXT == pWnd-> GetDlgCtrlID())
{
if (TRUE == m_bBlue)
{
pDC->SetTextColor(RGB(51, 153, 255));
pDC->SelectObject(&m_font1);
}
else if (TRUE == m_bRed)
{
pDC->SetTextColor(RGB(255, 0, 0)); //红色
pDC->SelectObject(&m_font2);
}
else
{
//其余默认情况,貌似不写都没有问题
pDC->SetTextColor(RGB(0, 0, 0));
}
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}