Проблема с установкой шрифта для статического текста
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 12.07.16 06:34
Оценка:
Есть диалог MYDIALOG1, которому соответствует класс CMyDialog.
Нпа этом диалоге распложены статические тексты (тип CStatic) IDC_ST1, IDC_ST2, ... IDC_ST21 , которым соответствуют перменные m_IDC_ST1, m_IDC_ST2, ..., m_IDC_ST21.
При этом на этом же диалоге существует групбокс (GroupBox) IDC_ST26, к которому я программно привязал статитеский текст IDC_ST1 (при помощи функции AttachControlSite). Я задал для этого групбокса отдельный шрифт в надежде на то, что IDC_ST1, расположенный на нём, будет иметь этот шрифт, отличный от IDC_ST2, ..., IDC_ST21. Вот код:

// работа с групбоксом IDC_ST26
pFont1 = GetFont();
pFont1->GetLogFont(&lf1);
lf1.lfHeight = 12;
lf1.lf1Width = 8;
lf1.lfWeight = 700;
lf1.lfCharSet = ANSI_CHARSET;
lf1.lfQuality = PROOF_QUALITY;
lf1.lfOutPrecision = OUT_DEFAULT_PRECIS;
lf1.lfClipPrecision = CLIP_DEFAULT_PRECIS;
mFont1.CreateFontIndirectW(&lf1);
GetDlgItem(IDC_ST26)->SetFont(&mFont1);
GetDlgItem(IDC_ST26)->AttachControlSite(&m_IDC_ST1);

// работа со статическими текстами IDC_ST2,...,IDC_ST21
pFont1 = GetFont();
pFont1->GetLogFont(&lf);
mFont2.CreateFontIndirectW(&lf);
GetDlgItem(IDC_ST2)->SetFont(&mFont2);
mFont3.CreateFontIndirect(&lf);
GetDlgItem(IDC_ST3)->SetFont(&mFont3);
//...
mFont21.CreateFontIndirect(&lf);
GetDlgItem(IDC_ST21)->SetFont(&mFont21);


В результате чего шрифт на IDC_ST1 отличен от других, больше по размеру, но обычной толщины, не жирный (я же хотел, чтобы он был жирным, почему и поставил lf1.lfWeight = 700; ).
Как сделать так, чтобы шрифт на IDC_ST1 был бы жирным (и нужного размера)?
1613 г. = 2024 г.
Re: Проблема с установкой шрифта для статического текста
От: SаNNy Россия  
Дата: 12.07.16 14:31
Оценка:
RF>В результате чего шрифт на IDC_ST1 отличен от других, больше по размеру, но обычной толщины, не жирный (я же хотел, чтобы он был жирным, почему и поставил lf1.lfWeight = 700; ).
RF>Как сделать так, чтобы шрифт на IDC_ST1 был бы жирным (и нужного размера)?

 lf.lfWeight = FW_BOLD
Re: Проблема с установкой шрифта для статического текста
От: Evgeniy Skvortsov Россия  
Дата: 12.07.16 14:34
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>При этом на этом же диалоге существует групбокс (GroupBox) IDC_ST26, к которому я программно привязал статитеский текст IDC_ST1 (при помощи функции AttachControlSite).


Зачем ты вызываешь AttachControlSite? Эта функция вообще переопределяется в наследнике (при необходимости) и вызывается фреймворком.
Обычно это делать не требуется.

Если нужно сделать некоторые элементы шрифтом жирнее чем шрифт диалога по умолчанию, то вот код:
LOGFONT lf;
GetFont()->GetLogFont(&lf);
lf.lfWeight = FW_BOLD;
m_BoldFont.CreateFontIndirect(&lf);
GetDlgItem(IDC_STATIC2)->SetFont(&m_BoldFont);
GetDlgItem(IDC_STATIC3)->SetFont(&m_BoldFont);
GetDlgItem(IDC_STATIC4)->SetFont(&m_BoldFont);
// и так для всех элементов для которых надо поменять шрифт


Зачем ты понаписал столько бессмысленного кода я хз.
Отредактировано 12.07.2016 15:02 Evgeniy Skvortsov . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.