scintilla是一个免费的源代码编辑控件,完全开放源代码。同时提供了demo例子scite,scite是一个文本编辑器,有使用Win32开发的版本,对于学习Windows编程有一定作用。
scintilla目前提供了Win32版本和Linux版本。是一个跨平台控件。Scintilla的Windows版本是一个窗体控件,主要的编程接口就是通过窗体消息来发送。要实现什么功能,向控件发送一个消息就可以。当需要从控件中得到消息时,接受WM_NOTIFY消息即可,可以从它带的参数中获得大量当前控件的消息。在MFC编程中,通过消息的方式来控制控件还是非常麻烦,因为这些消息大部分都是自定义消息,不便于记忆。一般做法就是将这些消息的调用封装成一个窗体类。
scintilla开发组同时用这个控件开发了一个编辑软件Scite,也是开源代码。
我主要读的是scite的源代码。看过一段时间之后,思路总结如下。