我正在使用纯Win32 API在C++中实现文本编辑器,现在我正在寻找实现语法高亮的最佳方法。我知道已经有像Scintilla这样的现成控件,但是我这样做只是为了好玩,所以我想自己完成大部分工作。同时,我也希望它快速且轻量化。
从我所学到的知识来看,使用GDI绘制文本最低级的选项是使用TextOut
函数。然而,如果我需要不断地更改字体颜色,那么这意味着我需要多次调用TextOut
来绘制一个具有混合格式的文本块。这样做是否效率低下呢?当语法高亮和富文本控件实现时,它们是否有可能在后台使用TextOut
,还是有其他方法?在GDI中,每种绘制文本的方法是否都是TextOut
的高级封装?