Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить типа сглаживания шрифтов в системе? [D6, WinXP]


leonidus ©   (2007-08-29 12:35:00) 

Собственно есть два вопроса:
1. По умолчанию, в XP для ЖК-мониторов какой тип сглаживания экранных шрифтов применяется (не применяется, обычный, ClearType)?
2. Как определить и поменять тип сглаживания?


Anatoly Podgoretsky   (2007-09-02 14:40:00) [1]

> leonidus  (02.09.2007 14:35:10)  [10]

Я тебе в самом начале писал, что это BOOL, но и это неправда, на самом деле это dword
Обычная чепуха двойного назначения в СИ


leonidus   (2007-09-02 14:35:00) [2]

блин, спасибо)) что-то зациклился на том что Bl это boolean...


homm   (2007-09-02 14:14:00) [3]

> что-то всеравно не догоняю

Ну ты и …

procedure TForm1.Panel4Click(Sender: PObj);
const
 SPI_GETFONTSMOOTHINGTYPE = $200A;
 SPI_SETFONTSMOOTHINGTYPE = $200B;

 FE_FONTSMOOTHINGSTANDARD = $0001;
 FE_FONTSMOOTHINGCLEARTYPE = $0002;
 FE_FONTSMOOTHINGDOCKING = $8000;

 SPI_GETFONTSMOOTHINGCONTRAST = $200C;
 SPI_SETFONTSMOOTHINGCONTRAST = $200D;
var
 BL: DWORD;
begin
 SystemParametersInfo (SPI_GETFONTSMOOTHINGTYPE, 0,@Bl,0);
 ShowMessage(int2str(BL));
end;


Вот если показало циферку «2» — значит Cleartype, если циферку «1» — значит обычный тип сглаживания, если «0» — значит без зглаживания.


leonidus   (2007-09-02 13:55:00) [4]

>homm что-то всеравно не догоняю, можно пример кода возвращающий "1" если есть сглаживание типа Cleartype и "0" если стоит обычный тип сглаживания?


homm   (2007-09-01 22:32:00) [5]

Более менее толково (странно, что всего матеравлов интее почти нет)

http://vsokovikov.narod.ru/New_MSDN_API/Fonts_text/rener_cleartype.htm


homm   (2007-09-01 22:30:00) [6]

> BL всегда равно true, в не зависимости от того стоит в настройках
> галка "использовать сглаживание" или нет

А что, она должна от этого зависеть?


> 2. подскажите пожалуйста как при запросе SPI_GETFONTSMOOTHINGTYPE
> получить тип сглаживания?

В интете вот нашел:
int FE_FONTSMOOTHINGCLEARTYPE = 2;
обычное видимо — 1 :)


Anatoly Podgoretsky   (2007-09-01 22:22:00) [7]

> leonidus  (01.09.2007 22:16:04)  [4]

The pvParam parameter is a pointer to a BOOL


leonidus   (2007-09-01 22:16:00) [8]

Леонид, спасибо, заработало, но есть некоторые непонятки.

1.
var
Bl : boolean;
SystemParametersInfo (SPI_GETFONTSMOOTHINGCONTRAST, 0,@Bl,0);

BL всегда равно true, в не зависимости от того стоит в настройках галка "использовать сглаживание" или нет

2. подскажите пожалуйста как при запросе SPI_GETFONTSMOOTHINGTYPE получить тип сглаживания?


Leonid Troyanovsky   (2007-09-01 16:58:00) [9]


> leonidus ©   (01.09.07 16:30) [2]

 {$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
 SPI_GETFONTSMOOTHINGTYPE = $200A;
 {$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
 SPI_SETFONTSMOOTHINGTYPE = $200B;

 { constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: }
 {$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
 FE_FONTSMOOTHINGSTANDARD = $0001;
 {$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
 FE_FONTSMOOTHINGCLEARTYPE = $0002;
 {$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
 FE_FONTSMOOTHINGDOCKING = $8000;

 {$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
 SPI_GETFONTSMOOTHINGCONTRAST = $200C;
 {$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
 SPI_SETFONTSMOOTHINGCONTRAST = $200D;

--
Regards, LVT.


leonidus   (2007-09-01 16:30:00) [10]

При вызове SPI_GETFONTSMOOTHING, все нормально, но вот на SPI_GETFONTSMOOTHINGCONTRAST и SPI_GETFONTSMOOTHINGTYPE компилятор ругается "неизвестный идентификатор". Как быть?


Игорь Шевченко   (2007-08-29 15:06:00) [11]

SystemParametersInfo (SPI_GETFONTSMOOTHING, ...
SystemParametersInfo (SPI_GETFONTSMOOTHINGCONTRAST, ...
SystemParametersInfo (SPI_GETFONTSMOOTHINGTYPE, ...

Ну и, соответственно SPI_SETxxxxx


Наверх

Титульная страница Поиск, карта сайта Написать письмо