Временное отключение Cleartype, для скриншотов, например |
Добро пожаловать, гость ( Вход | Регистрация )
Временное отключение Cleartype, для скриншотов, например |
Grom PE |
Apr 3 2008, 09:57
Сообщение
#1
|
Advanced Member Группа: CTPAX-X Сообщений: 84 Регистрация: 7-February 08 Из: i@grompe.org.ru Пользователь №: 3,120 Спасибо сказали: 95 раз(а) |
Большую часть времени у меня включено сглаживание шрифтов (Cleartype), на моем экране так лучше виден текст.
Но бывают ситуации, когда Cleartype вреден. Например, при снятии скриншотов его лучше отключить. Я заметил, что экранная лупа (magnify.exe) отключает его на время своего запуска, и решил добиться такого же эффекта. В результате получился такой код на Delphi: CODE uses Windows; Естественно, для версий Windows ниже XP этот код не нужен, и не будет работать.//const // Uncomment this if you're using Delphi 6 or earlier // FE_FONTSMOOTHINGSTANDARD = $0001; // FE_FONTSMOOTHINGCLEARTYPE = $0002; // SPI_GETFONTSMOOTHINGTYPE = $200A; // SPI_SETFONTSMOOTHINGTYPE = $200B; const SysParamFlags=SPIF_SENDWININICHANGE or SPIF_UPDATEINIFILE; RedrawFlags=RDW_INVALIDATE or RDW_ERASE or RDW_ALLCHILDREN or RDW_UPDATENOW or RDW_ERASENOW; var SmoothingType:cardinal; WasCleartype:boolean; begin SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE,0,@SmoothingType,0); WasCleartype:=SmoothingType=FE_FONTSMOOTHINGCLEARTYPE; if WasCleartype then begin SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,0, pointer(FE_FONTSMOOTHINGSTANDARD),SysParamFlags); RedrawWindow(0,nil,0,RedrawFlags); end; // Make screenshot, etc. MessageBox(0,'Cleartype is disabled at this point...','Test',0); // Restore Cleartype state if WasCleartype then begin SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,0, pointer(FE_FONTSMOOTHINGCLEARTYPE),SysParamFlags); RedrawWindow(0,nil,0,RedrawFlags); end; end. Спасибо сказали:
|
Упрощённая версия | Сейчас: 13th May 2024 - 09:56 |