1.简介
Scintilla是一款开源的语法高亮编辑器控件,官方网站:
http://www.scintilla.org/
。Scintilla
是最优秀的编辑控件之一,实现了语法高亮,代码折叠,书签,自动完成等等诸多功能,速度快,源代码也比较好理解,易于扩展,易于增加对新语言的支持。 比较著名的
scite
,
Notepad++,Notepad2
都是基于
Scintilla
开发的。
Scintilla提供了
Win32
版本和
Linux
版本,在
Windows
下,它是一个窗体控件,对它的控制都通过
SendMessage
函数
发送消息来完成
。
Scintilla提供了大量的消息 API ,每个消息可以带有 0 个、 1 个或 2 个参数。 SendMessage 函数中的消息,通常带有 2 个参数: wParam 和 lParam ,没有使用的参数,则设置为 0 。对于大多数 SCI_SETxxxxx 设置类消息,都会有一个对应的 SCI_GETxxxxx 查询消息。
2. 在MFC 中的简单使用
由于在 Windows下, scintilla 是一个窗体控件,所以在 MFC 中的使用变得相对简单。主要思想是让 scintilla 控件成为 view 类的子窗口,然后通过消息机制和视图类、框架类进行命令交互。
首先你要去scintilla 的网站上下载 scintilla 的开发库,框架的搭建可以参考下面的文章: http://blog.csdn.net/jack_china2008
本人使用scintilla 控件成功开发了一个 MFC 多文档应用程序 CodeEditor ,开发环境使用 Microsoft Visual Studio 2008. 。
关于该程序的详细信息请参阅本人博文:
http://blog.csdn.net/butterflydog/archive/2010/10/08/5927200.aspx
和 http://blog.csdn.net/butterflydog/archive/2010/10/08/5927121.aspx
欢迎大家一起学习交流!O( ∩ _ ∩ )O~