Высота строки Win32 DrawText
-
20-09-2019 - |
Вопрос
Я вызываю Win32 DrawText
функция для вывода некоторого текста в контекст устройства.Текст длинный и красиво переносится на вторую строку.Проблема в том, что мне нужно немного уменьшить пространство между строками (я думаю, уменьшить высоту строки?).Есть идеи, как это сделать?
я бы просто позвонил DrawText
дважды (по одному на каждую строку), но тогда мне придется сделать собственный перенос слов.
Есть ли другой путь?
Спасибо
Решение
Одна из возможностей — поместить текст в отключенный элемент управления Rich Edit.Я думаю, что это дает вам большой контроль над форматированием.
Если вы пишете собственный перенос слов, вы, вероятно, захотите использовать GetTextExtentExPoint() для измерения того, сколько поместится в каждой строке.
Другие советы
Прошло немало времени с тех пор, как я имел дело с этим в Win32, но я считаю, что шрифт сам определяет «ожидаемый» интервал, определяя пустое пространство под символом.Drawtext использует эту полную высоту для позиционирования следующей строки при переносе.Если вы хотите сделать что-то, что не соответствует этому размеру, я считаю, что вам придется выполнить собственные расчеты переноса и несколько вызовов DrawText().