右键点击该对话框-> 类导向 -> 消息 ->双击添加WM_CTLCOLOR,就可以在Dlg类中看到函数OnCtlColor了。
HBRUSH CMFCTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
if(IDC_STATIC_TEXT == pWnd-> GetDlgCtrlID())
{
if (TRUE == m_bBlue)
{
pDC->SetTextColor(RGB(0, 0, 255)); //蓝色
CFont font;
font.CreatePointFont(200, _T("微软雅黑"));
//GetDlgItem(IDC_STATIC_TEXT)->SetFont(&font);
pDC->SelectObject(&font);
}
else if (TRUE == m_bRed)
{
pDC->SetTextColor(RGB(255, 0, 0)); //红色
CFont font;
font.CreatePointFont(200, _T("宋体"));
//GetDlgItem(IDC_STATIC_TEXT)->SetFont(&font);
pDC->SelectObject(&font);
}
else
{
//其余默认情况,貌似不写都没有问题
pDC->SetTextColor(RGB(20, 230, 0));
CFont font;
font.CreatePointFont(190,_T("微软雅黑"));
pDC->SelectObject(&font);
}
}else if (IDC_BUTTON_BLUE == pWnd-> GetDlgCtrlID())
{
pDC->SetTextColor(RGB(0, 0, 255)); //蓝色
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
更新字体和颜色,updataData调用后执行上面函数
m_csText = _T("文字颜色显示");//m_csText变量是控件的Value值
UpdateData(FALSE);