Обнаружилась такая проблема. Если рисовать текст с параметром DT_WORDBREAK, то пропорциональное масштабирование RECT-а и размера шрифта не сохраняет места переноса слов. Вот пример: Как это можно побороть? Хочется масшабировать так, чтобы росло разрешение, но перенос слов не менялся.
Booster Блин, ну вроде ж все из рисунка должно быть ясно 1. Создаю фонт размером 30х10. Создаю окно 300х150, рисую DrawText в рект 300х150. 2. Создаю фонт размером 60х20. Создаю окно 600х300, рисую DrawText в рект 600х300. Как можно заметить - все размерности удвоены, то есть отмасштабированы. Результат - переносы слов в разных местах.
_DEN_ Результат не показывает применяемых методов. В общем как я и писал надо вычислять размеры текста - GetTextExtentPoint.
cupuyc Ненене, Девид Блейн, никаких ручками Ручками-то ясен болт можно все сделать. Я хочу чтобы переносы стоились апями.
_DEN_ Надо полагать дело в том, что ты не масштабируешь поля отступа от краёв прямоугольника. см. DRAWTEXTPARAMS в DrawTextEx.
Шрифт 60х20?! Откуда такие шрифты? Шрифт задаётся его высотой, которая выражена в points. Затем заполняется структура LOGFONT по формуле вот отсюда: http://msdn.microsoft.com/en-us/library/dd145037(VS.85).aspx затем вызывается CreateFontIndirect().
AsmGuru62 Заработало! Заюзал CreateFontIndirect, масштабирую рект и высоту одним и тем же множителем, а ширину ставлю в ноль. И все масштабируется чотко - переносы сохраняются! Вот только этого не понял. Доктор, что это?