пятница, 27 августа 2010 г.

Про SetTextContrast в GDI+

Есть такая функция у компонента Graphics в GDI+, называется SetTextContrast. Нужна она, чтобы выставить величину контраста, используемую при выводе antialiasing текста. И есть еще такая системная функция SystemParametersInfo, которая по параметру SPI_GETFONTSMOOTHINGCONTRAST возвращает установленное в системе значение контраста, для тех же операций. При этом, если посмотреть описание этой системной функции, то выясняется, что значение параметра контраста меняется от 1000 до 2200, и по умолчанию установлено в 1400.

Самое интересное (и почему то вот этого в МСДН уже нет), что функция SetTextContrast принимает значения параметра в пределах от 0 до 12, а отнюдь не от 1000 до 2200. Соответственно, получив значение из SystemParametersInfo, надо его вначале привести к соответствующим пределам, т.е. вычесть 1000 и поделить на 100.

Кто бы знал, полчаса пытался понять, с чего бы оно не работает.