GDI+ DrawDriverString - позиции глифов
От: SergeyS  
Дата: 21.03.03 07:52
Оценка:
Я хочу реализовать редактирование текста в графическом редакторе. Нормально текст рисуется функцией Graphcs::DrawString(string, length, font, layoutRect, stringFormat, brush). Для отрисовки текста во время редактирования я использую Graphcs::DrawDriverString. Эта функция примимает позиции глифов, которые я сам должен вычислить. Расчет позиций глифов должен точно соответствовать алгоритму расстановки символов, используемому в Graphcs::DrawString. Сейчас для вычисления позиций символов я нахожу их ширину (с помощью функции GDI GetCharABCWidths) и сам рассчитываю позицию каждого символа. Получается довольно увесистый алгоритм, который не всегда работает правильно.
Вопрос: как проще всего правильно рассчитать позиции глифов с учётом автоматического переноса строк, kerning-а, доп. межстрочных расстояний (ExternalLeading) и др. тонкостей?


21.03.03 11:17: Перенесено модератором из 'C/C++' — ПК
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.