Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.016 c
2-1207606761
иван8511
2008-04-08 02:19
2008.05.11
Защита программы от запуска на других компьютерах


15-1206536706
смарт
2008-03-26 16:05
2008.05.11
ПО Смартов


15-1206469858
кодировки
2008-03-25 21:30
2008.05.11
отличие ASCIIZ от ASCII


2-1208263641
AlexanderMS
2008-04-15 16:47
2008.05.11
Реально ли такой код перевести с C++ на Delphi?


4-1188469370
istok
2007-08-30 14:22
2008.05.11
проблема с unhook...




   Наверх