Названия вкладок жирным шрифтом отображаются не полностью
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 06.07.16 09:49
Оценка:
На диалоговом окне повешен TabControl с именем IDC_TAB1, которой соответствует переменная m_ctrTab. На этом TabControl-е находятся две вкладки CPage1 и CPage2, которым соответствуют надписи "первая вкладка" и "вторая вкладка". Соответствующий код приведён в функции CMyProjectDlg::OnInitDialog :

TC_ITEM  TabItem;
TabItem.mask = TCIF_TEXT;
TabItem.pszText = L"первая вкладка";
m_ctrTab.InsertItem(0,&TabItem);
TabItem.pszText = L"вторая вкладка";
m_ctrTab.InsertItem(1,&TabItem);

CPage1* pPage1; // первая вкладка
pPage1 = new CPage1;
TabItem.mask = TCIF_PARAM;
TabItem.lParam = (LPARAM)pPage1;
m_ctrTab.SetItem(0,&TabItem);
VERIFY(pPage1->Create(CPage1::IDD,&m_ctrTab));
pPage1->SetWindowPos(NULL,10,30,0,0,SWP_NORESIZE|SWP_NOZORDER);
pPage1->ShowWindow(SW_SHOW);

CPage2* pPage2; // вторая вкладка
pPage2 = new CPage2;
TabItem.mask = TCIF_PARAM;
TabItem.lParam = (LPARAM)pPage2;
m_ctrTab.SetItem(1,&TabItem);
VERIFY(pPage2->Create(CPage2::IID,&m_ctrTab));
pPage2->SetWindowPos(NULL,10,30,0,0,SWP_NOSIZE|SWP_NOZORDER);
pPage2->ShowWindow(SW_HIDE);


После этого кода в этой же функции я добавил следующее:

LOGFONT  lf;
lf.lfHeight = 12;
lf.lfWeight = 700; // жирный шрифт
CFont  m_Font;
m_Font.CreateFontIndirectW(&lf);
GetDlgItem(IDC_TAB1)->SetFont(m_Font);

В результате чего надписи "первая вкладка" и "вторая вкладка" на вкладках стали жирными (как я и хотел), но они отображаются не полностью--то есть отображаются надписи "первая вкла" и "вторая вкла".

Как сделать так, чтобы эти надписи на вкладках отображались полностью при жирным шрифте?
1613 г. = 2024 г.
Re: Названия вкладок жирным шрифтом отображаются не полностью
От: b0r3d0m  
Дата: 06.07.16 10:07
Оценка:
Может, возьмёте что-нибудь попроще?
Re: Названия вкладок жирным шрифтом отображаются не полность
От: Evgeniy Skvortsov Россия  
Дата: 06.07.16 11:08
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Как сделать так, чтобы эти надписи на вкладках отображались полностью при жирным шрифте?


— Задать минимальную ширину закладки через CTabCtrl::SetMinTabWidth
— Увеличить размер CTabCtrl`а
— Уменьшить шрифт

В зависимости от ситуации либо что-то одно, либо в какой-то комбинации
Отредактировано 06.07.2016 11:14 Evgeniy Skvortsov . Предыдущая версия . Еще …
Отредактировано 06.07.2016 11:08 Evgeniy Skvortsov . Предыдущая версия .
Re[2]: Названия вкладок жирным шрифтом отображаются не полность
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 06.07.16 15:04
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>- Увеличить размер CTabCtrl`а


Как это сделать?
1613 г. = 2024 г.
Re[3]: Названия вкладок жирным шрифтом отображаются не полность
От: Evgeniy Skvortsov Россия  
Дата: 07.07.16 07:28
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Как это сделать?


Растянуть в редакторе ресурсов.
Re[4]: Названия вкладок жирным шрифтом отображаются не полность
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 07.07.16 11:56
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>Здравствуйте, RussianFellow, Вы писали:


RF>>Как это сделать?


ES>Растянуть в редакторе ресурсов.


Ясно.
1613 г. = 2024 г.
Re: И ещё вопрос
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 07.07.16 12:29
Оценка:
Мой код:

m_ctrTab.SetItemSize(CSize(20,20));
m_ctrTab.SetPadding(CSize(30,5));
TC_ITEM  TabItem;
TabItem.mask = TCIF_TEXT;
TabItem.pszText = L"Первая вкладка";
m_ctrTab.InsertItem(0,&TabItem);
TabItem.pszText = L"Вторая вкладка";
m_ctrTab.InsertItem(1,&InsertItem);


(То есть я перед своим кодом по установке закладок для CTabCtrl написал две строки:

m_ctrTab.SetItemSize(CSize(20,20));
m_ctrTab.SetPadding(CSize(30,5));


)

У меня в заголовках обеих вкладок после надписей остаётся ещё достаточно пространства. Я пытался экспериментирвоать с m_ctrTab.SetItemSize, но результат был всё равно один и тот же--на заголовках вкладок всё равно остаётся пространство.

Можно ли сделать так, чтобы заголовки вкладок заканчивались сразу после окончания надписей на них, и если да, то как это сделать?
1613 г. = 2024 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.