![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблемы с DrawText()
antonn © (2006-04-03 13:08:00)при включении в WinXP сглаживание шрифтов методом ClearType (да и при "обычном", наверно, тоже), текст, отрисованый на канве с помощю DrawText() "подрезается" слева. Например буква "Д": отрисованная шрифтом tahoma 8 левая нижняя "ножка" имеет тощину 2 пикселя. Первая такая "Д" подрезается, и ножка получает толщину 1 пиксел, последующие Д имеют по 2 пиксела толщину. Все бы ничего, но это визуально заметно и нервирует. Более того, у подрзанной буквы свет текста в месте среза немного "сбивается", т.е. немного отличается от основного, краснее или зеленее.
Вопрос - как от этого избавиться? :)
ЗЫ При отрисовки текста canvas.textout() все нормально... Но мне нужно рисовать текст, вписывая его в определенную ширину с авто переносами.
antonn (2006-04-03 18:40:00) [1]на битмап я текст вывожу, не на контрол.
Вообще, вся чехарда эта была затеяна из-за того, что мне нужно было на 32х битным битмап вывести текст, причем под текстом альфаканал был бы = 255. А оказалось, что при выводе на такой битмап, что canvas.textout(), что DrawText() по всей площади вывода альфаканал вообще сбрасывался на 0. Вот создал промежуточный битмап (pf24bit), и выводил на него, и с него копировал на 32 битный. А тут эта проблема с обрезанными буквами, все думал, что сам не то делал... Но спасибо неизвестному ZEE с http://forum.sources.ru/, что посоветовал в св-ва вывода добавить DT_NOCLIP - помогло:)
Leonid Troyanovsky (2006-04-03 18:19:00) [2]
> antonn © (03.04.06 14:42) [1]
> разделен построчно как в функции DrawText() с опцией DT_EXPANDTABS.
> Я тогда textout'ом выведу:)
Дык, а куда ты его выводишь? Может, просто контрол другой взять,
скажем, листбокс или грид.
--
Regards, LVT.
antonn (2006-04-03 14:42:00) [3]или подскажите вариант, как в TStrings получить текст, который разделен построчно как в функции DrawText() с опцией DT_EXPANDTABS. Я тогда textout'ом выведу:)