|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.11.2012, 01:04 | #1 |
Пользователь
Регистрация: 01.02.2012
Сообщений: 84
|
Работа с шрифтами
Заносим в массив кнопки с диалогового окна:
Код:
Устанавливаем текст кнопки и ее шрифт: Код:
|
27.11.2012, 20:18 | #2 |
Пользователь
Регистрация: 04.10.2012
Сообщений: 95
|
for(int index = 0; index <= CONTROL_BUTTON_COUNT; index++)
не? /// посмотрел внимательней.... не знаю )) Проверяй чему равен CONTROL_BUTTON_COUNT, выполняется ли код в последней итерации или нет. А если в одной?....
Пишу на чистом С, плюсы спилил.
Последний раз редактировалось LynXzp; 27.11.2012 в 20:21. |
27.11.2012, 22:21 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
По мне так вообще странно, что это работает.
Стандартный метод SetFont просто берет манипулятор из CFont объекта и передает его окну а потом это манипулятор удаляется, когда мы создаем следущий CFont или когда выходим из функции, где делается установка. Вынесите font.CreateFont() из цикла. CFont должен существовать пока фонт установлен в кнопке, но никто не запрещает использовать один и тот фонт для всех кнопок. Лучше всего сделать font переменной класса. Когда тестируете, возмите ваше окно за заголовочную строку и вынесите его целиком за пределы екрана - это гарантирует, что все елементы перерисуются. Вполне возможно, что они рисуются при смене (и выглядят правильно) но в дальнейшем рисоваться правильно уже не будут. |
29.11.2012, 23:47 | #4 | |||
Пользователь
Регистрация: 01.02.2012
Сообщений: 84
|
Цитата:
Цитата:
Цитата:
Так было изначально: Так после 1 шрифта для всех: Перерисовка не помогает Последний раз редактировалось crymchanin; 30.11.2012 в 00:01. |
|||
30.11.2012, 00:23 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Я так и думал...
Сделайте CFont font переменной класса. В OnInitDialog вызовите CreateFont только один раз, потом присвойте всем кнопкам. CFont не позволяет вызывать CreateFont несколько раз подряд, у вас должна вылезать Assert табличка, если только вы не делаете Release сборку. |
30.11.2012, 00:34 | #6 |
Пользователь
Регистрация: 01.02.2012
Сообщений: 84
|
Заработало) Большое спасибо)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
GDI+ работа со шрифтами | D][mon | Помощь студентам | 0 | 14.03.2012 20:03 |
Проблема со шрифтами | analyst | Microsoft Office Excel | 2 | 16.06.2011 17:31 |
Проблема со шрифтами | Caнёk | Операционные системы общие вопросы | 11 | 22.08.2010 18:48 |
проблема со шрифтами | Gambler | Microsoft Office Word | 0 | 29.10.2006 21:35 |