MF C: изменить размер шрифта на stati c элемент управления не работает? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь использовать этот код MF C: динамически изменять размер шрифта управления? , но, похоже, не работает.

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», размер шрифта не изменился.

1 Ответ

2 голосов
/ 25 февраля 2020

Как сказал @Jovibor, font - это локальный объект, после вызова функции объект будет освобожден. При отрисовке элемента управления stati c текст все равно будет отрисован шрифтом по умолчанию.

Простой способ:

  • add static

    вот так: static CFont font;

  • Объявление объекта в классе

    class CMyDialog : public CDialogEx
    {
    ....
    private:
        CFont font;
    };
    
...