原文
CScintillaCtrl,CScintillaView
和CScintillaDocv1.82
Scintilla
编辑控件的免费MFC
和ATL/WTL
包装类
这些类为Scintilla
编辑控件(http://www.scintilla.org)
提供MFC
和ATL/WTL
包装.此控件
提供开源
跨平台编辑控件
.
部分功能包括语法高亮
,调用提示
,括号高亮
,风格,边距和标记
等等.提供的包装类
使其更容易在窗口
的MFC/WTL
项目中的控件中包含.
1,实现Scintillav5.4.1
提供的所有功能.
2,CScintillaCtrl
包装类,与在MFC的"CEdit"
包装类相同语义.此类还可不依赖MFC
,与ATL/WTL
一起使用.
3,自动使用Scintilla
提供的直接访问功能
提高性能.
4,CScintillaView
和CScintillaDoc
类提供完整的,可放入现有项目
中,而不是内置的MFC
富编辑或编辑控件
类的文档/视图
实现.
5,内置MFC
持久性支持.
6,使用WM_NOTIFY
和WM_COMMAND
发送的所有通知都映射到视图包装类
中,以方便使用C++
虚函数.
7,CScintillaView
类,提供默认折叠
实现.
8,包括普通Scintilla
提供表达支持的完整"查找和替换"
支持.为此,从标准MFC"CFindReplaceDialog"
类继承来实现的"CScintillaFindReplaceDlg"
类.
9,包括CScintillaView
中的完整MFC
打印实现.
10,完全支持
标准页设置对话框和打印页边距
.
11,包括打印页眉和页脚
的框架.
12,包括对所有标准MFC
菜单项的支持,如剪切,复制,粘贴
等.
13,示例
演示了如何转发顶级消息
到Scintilla
控件.
14,示例还演示了如何实现自动补全
,并在代码
中调用提示
.
15,这些类
隐藏了Scintilla
自身不支持窗口
的Unicode
(又名UTF16
)的事实.Scintilla
通过UTF8
支持Unicode
,"CScintillaCtrl"
包装类负责,安装Scintilla
的Unicode
代码页及UTF8
之间的转换串.
如果你查看"ScintillaCtrl.h"
头文件,在Scintilla
中,会看见涉及串参数
,及函数的宽字符
的串版本等.在"_UNICODE"
的#ifdef
预处理器中包装
这些宽符
串函数.
16在内部,这些函数执行在窗口Unicode
和Scintilla
的UTF8
间的转换.注意,要执行此转换
,代码使用WideCharToMultiByte
和MultiByteToWideChar
提供的UTF8
翻译功能.
要在代码
中使用该类,只需在你的模块中包含ScintillaCtrl.h
和ScintillaCtrl.cpp
,并#include ScintillaCtrl.h
.
如果要使用文档/视图
包装器,则还包括ScintillaDocView.h
及ScintillaDocView.cpp
.
如果用mfc
,则代码需要静态或动态
包含MFC
.否则,仅使用ATL/WTL
.
如果要动态链接到Scintilla
,在"Scintilla.dll"
和"Lexilla.dll"
上,启动应用
时,应调用LoadLibrary
.
如果静态
包含控件代码,则需要自己注册Scintilla
窗口类.另见Scintilla/Lexilla
网站上的说明1,2.
要查看各种类
运行情况,请查看"ScintillaDemoView.cpp"
模块和示例中的"ScintillaDemo.cpp"
.
产品以二进制形式发布时,可在产品(商业,共享软件,免费软件或其他
)中使用.
可你想要的方式修改源码,但不能修改每个模块
顶部的版权细节
.
如果想用应用分发源码
,则只允许分发作者
发布的版本
.来维护源码的单个分发点.