Как бороться с изменение размера системных шрифтов?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Как бороться с изменение размера системных шрифтов?

Сообщение Ruslan Demidow » 28.07.2004 (Ср) 10:32

Как реализовать адекватное поведение контролов на форме (чекбоксы и опшионбоксы) при изменении размера системных шрифтов?
Т.е. если пользователь в настройкав видео установил не мелкий шрифт 96пт, а больший. Например увеличил размер шрифта до 110 или 115%.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 28.07.2004 (Ср) 11:05

Мне предложили два варианта:
1 - при загрузке формы проверять на размер шрифта и устанавливать его размер адекватным.
2 - в ресурсный файл положить версии надписей для разных размеров шрифтов и после проверки зогружать соответствующую версию

мне пока помогало установление размеров контролов с запасом, которого бы хватало на увеличенные надписи, но здесь есть свои подводные камни
Так что решай и придумывай сам как тебе лучше выйти из создавшейся ситуации,
Удачи!

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 28.07.2004 (Ср) 11:31

Igor_123 писал(а):Мне предложили два варианта:
1 - при загрузке формы проверять на размер шрифта и устанавливать его размер адекватным.
2 - в ресурсный файл положить версии надписей для разных размеров шрифтов и после проверки зогружать соответствующую версию

мне пока помогало установление размеров контролов с запасом, которого бы хватало на увеличенные надписи, но здесь есть свои подводные камни
Так что решай и придумывай сам как тебе лучше выйти из создавшейся ситуации,
Удачи!

Мне больше нравится первый вариант. Но я не понял, как установить размер шрифта адекватным?
Подгонять системный шрифт под нужные мне размеры или как?
По второму: т.е. если большой шрифт, то надписи должны быть короче? А если шрифт мелкий - то можно и длинные?
Так не пойдёт. Мне из надписей нечего выкидывать лишнего.
Я вот думаю, может быть с ресайзингом формы и контролов поковыряться. Только у меня в форме "Настройка" этих контролов и опшионов около 20 штук. Чувствую геморрой будет ещё тот.
Есть ли ещё какие нибудь варианты решения?

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 28.07.2004 (Ср) 16:13

Ну ты же знаешь высоту символов при нормальном размере шрифта, вот и проверяй при загрузке формы высоту шрифта, у формы есть метод
Код: Выделить всё
TextHeight(Src As String) As Single

или API -
Код: Выделить всё
SIZE  Size;
::GetTextExtentPoint32( (HDC)(*this), retVal.c_str(), strlen(retVal.c_str()), &Size ) )

в структуре Size - будет высота и ширина текста который передал в retVal.c_str(), длиной strlen(retVal.c_str()). Вот и уменьшай размер выводимого шрифта до тех пор пока не получишь приемлемый результат.
Насчет ресайза дело такое, тебе видней, после таких проблем я стараюсь делать дизайн формы таким образом Изображение
тогда при изменении размера шрифта есть место куда он увеличивается.
А на чексбоксах и опшионбуттонах в надписях стоит один пробел, а весь текст помещаю в лабел, который стоит рядом.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 30.07.2004 (Пт) 1:01

Ясно. У меня и так плотное расположение контролов на форме
Изображение
, поэтому лабелы отпадают сразу. А вот по поводу подгонки размера шрифта: я тебя правильно понял - нужно насильно задать размер шрифта?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList  
cron