Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1208247738
AlexDan
2008-04-15 12:22
2008.05.11
Строка в массив


15-1206382716
Новый пользователь
2008-03-24 21:18
2008.05.11
Имена MDIForm типа как в 1С


2-1208065801
honor
2008-04-13 09:50
2008.05.11
База данных без прописывания Альяса


15-1206803292
guav
2008-03-29 18:08
2008.05.11
DMClient - посветка.


15-1206683227
oldman
2008-03-28 08:47
2008.05.11
Переход на летнее время и обратно (в Windows)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский