Сглаживание шрифтов для отдельно взятой программы.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сглаживание шрифтов для отдельно взятой программы.

Сообщение Mikle » 29.05.2003 (Чт) 15:53

То есть я хочу, чтобы внешний вид моей программы не менялся в зависимости от опции в панели управления "Сглаживание экранных шрифтов". Возможно ли это? Если да, то как?

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 29.05.2003 (Чт) 18:22

сомневаюсь что такое реально... если только вставить картинки вместо надписай :lol: хех...
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 04.06.2003 (Ср) 15:59

Попробую упростить задачу. Как программно включить-выключить это самое сглаживание для всех Windows? Учитывая, что моя программа полноэкранная, меня это устроит.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 04.06.2003 (Ср) 16:59

В реестре, но это тока перезагрузка.

Апиха какаянить типа SetSystemInfo
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.06.2003 (Чт) 8:35

Через свойства рабочего стола все это делается без перезагрузки, но как программно?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.06.2003 (Чт) 10:12

Код: Выделить всё
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPI_SETFONTSMOOTHING = 75



А потом
Код: Выделить всё
SystemParametersInfo SPI_SETFONTSMOOTHING, 0, True, SPIF_SENDWININICHANGE
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.06.2003 (Чт) 15:35

Благодарю. Приду домой - попробую, результат сообщу.

Все ОК! Только сначала ругнулось на несоответствие типов, но когда я заменил константу True на переменную типа Long, (хотя в декларации Any!) - все заработало. Теперь бы еще что-то типа
SPI_GETFONTSMOOTHING (GET вместо SET) - чтобы я мог запоминать системные настройки для последующего восстановления.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.06.2003 (Пт) 10:37

Private Const SPI_GETFONTSMOOTHING = 74


Работает это так: надо объявить переменную типа Boolean и вызвать SystemParametersInfo SPI_GETFONTSMOOTHING, 0, MyBooleanVar, 0. Он тебе запихнет это значение в MyBooleanVar.


А вообще, я почти написал класс для работы со многими системными параметрами. Отлаживаю. Сессия мешает. В "Проектах" никто не откликнулся. Короче, напишу, выложу...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 06.06.2003 (Пт) 16:35

Спасибо!!! :D

Cav
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 14.07.2003 (Пн) 19:25

Сообщение Cav » 08.01.2006 (Вс) 16:25

Код: Выделить всё
SystemParametersInfo SPI_SETFONTSMOOTHING, 0, True, SPIF_SENDWININICHANGE



это работать не будет

Код: Выделить всё
SystemParametersInfo SPI_SETFONTSMOOTHING, 0, 1&, SPIF_SENDWININICHANGE


так надо!

Cav
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 14.07.2003 (Пн) 19:25

Сообщение Cav » 09.01.2006 (Пн) 0:21

Код: Выделить всё
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPI_SETFONTSMOOTHING = 75


Не корректно - так нельзя использовать GET

Код: Выделить всё
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, Byref lpvParam As boolean, ByVal fuWinIni As Long) As Long
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPI_SETFONTSMOOTHING = 75


В таком случае будет работать:

Код: Выделить всё
SystemParametersInfo SPI_SETFONTSMOOTHING, 0, True, SPIF_SENDWININICHANGE


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

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

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

    TopList