在设置对话框里已经放了一个ID号为IDC_TEXT名称为"程序员"的static控件,为什么下面的代码不能使"程序员"变成楷体,
我是照着孙鑫的视频做的,视频里执行成功,我的则不行,为什么?
CSettingDlg::CSettingDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSettingDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSettingDlg)
m_nLineWidth = 2;
//}}AFX_DATA_INIT
m_font.CreatePointFont(200,"楷体");
}
HBRUSH CSettingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID()==IDC_TEXT)
{
pDC->SelectObject(&m_font);
}
return hbr;
}
我是照着孙鑫的视频做的,视频里执行成功,我的则不行,为什么?
CSettingDlg::CSettingDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSettingDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSettingDlg)
m_nLineWidth = 2;
//}}AFX_DATA_INIT
m_font.CreatePointFont(200,"楷体");
}
HBRUSH CSettingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID()==IDC_TEXT)
{
pDC->SelectObject(&m_font);
}
return hbr;
}
把“楷体”改成“楷体_GB2312”就可以了。
在word里看下字体的准确的名字,要完全符合才可以。
GetDlgItem(IDC_TEXT)->SetFont(&m_font);如果还不行可以试试:
//设置字体
VERIFY(m_font.CreateFont(
55, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_SEMIBOLD, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
GB2312_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
"楷体_GB2312"));