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