Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

Как определить типа сглаживания шрифтов в системе?   Найти похожие ветки 

 
leonidus ©   (2007-08-29 12:35) [0]

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


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

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

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


 
leonidus ©   (2007-09-01 16:30) [2]

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


 
Leonid Troyanovsky ©   (2007-09-01 16:58) [3]


> 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 22:16) [4]

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

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

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

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


 
Anatoly Podgoretsky ©   (2007-09-01 22:22) [5]

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

The pvParam parameter is a pointer to a BOOL


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

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

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


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

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


 
homm ©   (2007-09-01 22:32) [7]

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

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


 
leonidus ©   (2007-09-02 13:55) [8]

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


 
homm ©   (2007-09-02 14:14) [9]

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

Ну ты и …

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 14:35) [10]

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


 
Anatoly Podgoretsky ©   (2007-09-02 14:40) [11]

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

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



Страницы: 1 вся ветка

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1207744253
Zloi_Funtik
2008-04-09 16:30
2008.05.11
удаление ранее созданных динамических объектов


2-1208075381
assassin8899
2008-04-13 12:29
2008.05.11
ADOTable и ADOQuery


2-1207907891
Снежинка
2008-04-11 13:58
2008.05.11
Вывод времени


4-1188571688
istok
2007-08-31 18:48
2008.05.11
получить хендл окна...


3-1196078709
Тимур
2007-11-26 15:05
2008.05.11
SQL.ADD выдает ошибку