Я использую текстовый редактор на С++, используя API-интерфейс Vanilla Win32, и я пытаюсь найти лучший способ реализовать подсветку синтаксиса. Я знаю, что существуют существующие элементы управления, такие как сцинтилля, но я делаю это для удовольствия, поэтому я хочу сам сделать большую часть работы. Я также хочу, чтобы он был быстрым и легким.
Из того, что я узнал до сих пор, похоже, что самый низкий уровень для рисования текста в GDI - это функция TextOut
. Однако, если мне нужно продолжать менять цвет шрифта, значит, мне нужно будет сделать много звонков на TextOut
, чтобы нарисовать один текст со смешанным форматированием. Это неэффективно? Когда реализованы подсветка синтаксиса и расширенные текстовые элементы управления, могут ли они использовать TextOut
за кулисами или есть какой-то другой способ? Является ли каждый другой метод рисования текста в GDI только оболочкой более высокого уровня вокруг TextOut
?