MFC:在静态控件上更改字体大小不起作用?
MFC: change font size on static control doesn't work?
我尝试使用此代码 MFC: Dynamically change control font size?,但似乎不起作用。
CMyDialog::OnInitDialog()
{
...
LOGFONT lf;
CFont *currentFont = GetFont();
currentFont->GetLogFont(&lf);
lf.lfHeight = 60;
CFont font;
font.DeleteObject();
font.CreateFontIndirect(&lf);
GetDlgItem(IDC_STATIC)->SetFont(&font, TRUE);
...
}
不管我设置哪个"lfHeight",字体大小不变
正如@Jovibor所说,font
是一个局部对象,函数调用后,对象会被释放。绘制静态控件时,文本仍将使用默认字体绘制。
简单的方法:
添加static
像这样:static CFont font;
在 class
中声明一个对象
class CMyDialog : public CDialogEx
{
....
private:
CFont font;
};
我尝试使用此代码 MFC: Dynamically change control font size?,但似乎不起作用。
CMyDialog::OnInitDialog()
{
...
LOGFONT lf;
CFont *currentFont = GetFont();
currentFont->GetLogFont(&lf);
lf.lfHeight = 60;
CFont font;
font.DeleteObject();
font.CreateFontIndirect(&lf);
GetDlgItem(IDC_STATIC)->SetFont(&font, TRUE);
...
}
不管我设置哪个"lfHeight",字体大小不变
正如@Jovibor所说,font
是一个局部对象,函数调用后,对象会被释放。绘制静态控件时,文本仍将使用默认字体绘制。
简单的方法:
添加
static
像这样:
static CFont font;
在 class
中声明一个对象class CMyDialog : public CDialogEx { .... private: CFont font; };