一、概述
Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。比如我们常用的notepad++就是使用了这个控件。https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12624
Scintilla官方下载地址:https://www.scintilla.org/scintilla532.zip
配套的lex下载地址:https://www.scintilla.org/lexilla521.zip
编辑器控件代码是跨平台的,而如果需要在mfc中使用,则需要进行适当封装,幸好有人已经做好了相关的工作:CScintillaCtrl, CScintillaView & CScintillaDoc v1.77
该控件可以在对话框中以及视图中使用,该压缩包下载后就是一个完整的示例,可以编译;
另外有人也提供了一个相关的示例,该示例的发布信息中提供了可用的DLL文件,我们不再需要再编译可执行文件Scintilla.dll和Lexilla.dll。https://github.com/RadAd/RadNotepadMFC
本文主要讨论如何在对话框中使用和配置典型的功能。
二、需求与环境
VS2019,windows11,使用MFC开发;
1)在对话框中添加代码编辑器,
2)支持某种语言的关键字语法高亮,
3)行号显示与代码折叠
4)代码提示补全,
效果如下:
三、步骤
1)下载源码压缩包
https://www.scintilla.org/scintilla532.zip
https://www.scintilla.org/lexilla521.zip
http://www.naughter.com/download/scintillawrappers.zip