![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить типа сглаживания шрифтов в системе? [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