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;
    };