Как создать полужирную и курсивную маркировку в MFC?

Просто еще не отмечайте его как простофилю этого вопроса:

Полужирные маркировки в MFC

Тот вопрос не помогает мне; по некоторым причинам я не вижу богатые средства редактирования. Вместо этого я полагаю, что должен сделать это в коде. вот образец, который я нашел:

http://www.tech-archive.net/Archive/VC/microsoft.public.vc.mfc/2006-10/msg00245.html

Моя проблема состоит в том, что я предпочитаю не изобретать велосипед и тестировать на ошибки сам или через QA.

Кто-то, должно быть, реализовал это прежде. Совместно используйте свой код.

То, что я хотел бы сделать:

  • Сохраните тот же размер шрифта, семейство, и т.д. как в уже созданной маркировке, но сделайте это полужирным и курсивным также.
  • Сохраните объем потребляемой памяти довольно низко (не создавайте новые лишние объекты), но не получайте приложение в непоследовательное состояние также.

Я признателен за Вашу помощь.

6
задан Community 23 May 2017 в 11:54
поделиться

1 ответ

Перед отображением статического текстового элемента управления в родительском окне необходимо выполнить следующие действия.

  1. Получить дескриптор окна: CWnd * pwnd = GetDlgItem (IDC_LABEL);
  2. Получить текущий шрифт для статического текста: CFont * pfont = pwnd-> GetFont ();
  3. Получить характеристики шрифта: LOGFONT lf; pfont-> GetLogFont (& lf);
  4. Измените поля lfWeight и lfItalic в lf .
  5. Поместите объект CFont в ваше родительское окно, чтобы он существовал в течение всего времени существования дочернего окна.
  6. Инициализировать CFont: m_font.CreateFontIndirect (& lf);
  7. Установить шрифт в окно статического текста: pwnd-> SetFont (& m_font);
8
ответ дан 16 December 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: