文档介绍:RICH EDIT 控件 SDK 参考手册摘要: 本文对 Rich Edit 控件底层消息机制进行了讲解, 以期读者对 Windows 平台下的 Rich Edit 控件有一个更深入的认识,同时对于使用 Win32 SDK 进行开发的人员具有一定参考价值。因为文章的初衷是引领 VB 程序员通过 Win32 API 调用来扩展 VB 下的 Rich Edit 控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考 Visual Studio 下的 MSDN Library 。关键字: Rich Edit Control 、 RTF 、 SDK 、 MSDN 。一、引言 Rich Edit 控件是一个可用于输入、编辑、格式化、打印和保存文本的窗体。这些文本可以设置字符和段落格式, 对象。 Rich Edit 控件提供格式化文本的编程接口。不过,应用程序必须实现这些用户接口组件,以便用户可以进行格式化操作。 Rich Edit 控件几乎支持所有用于多行 Edit 控件的消息和通知。因此,已经使用了 Edi t 控件的程序可以很容易的改为 Rich Edit 控件。额外的消息和通知使得应用程序可以访问 Rich Edit 控件特有的功能。获取更多关于 Edit 控件的信息,请参阅 Edit Controls 。正如大家所熟知的, Windows 控件是基础窗口,它处理那些控制窗口显示和特征的消息。而 ActiveX 容器。 RichEdit Windows 控件是 Edit Windows 控件的扩展集, TextBox ActiveX 控件也是从它派生而来。 RichEdit 能够识别 Edi t 消息并且加入了自己特有的消息。你可以在 Win32 帮助文件中认出 Edit 和 RichEdit 的消息常数,因为他们均采用 EM_ 作为前缀。 ActiveX RichTextBox 控件将绝大多数的这种消息映射为其属性。例如, EM_LIMITTEXT 与 MaxLength 属性相对应。但是你同时会注意到一些感兴趣的消息并没有与之对应的 RichTextBox 属性。为什么呢? ActiveX 控件为最通用的特性提供方法和属性,更具体讲,是提供给 VB 设计者最感兴趣的特性。设计者们似乎喜欢每个新版本里更多的特征。例如, TextBox 和 RichTextBox 控件现在具备 Locked 属性。在旧版本的 VB 中你不得不通过 EM_SETREADONLY 消息来模拟。但是, 还有许多其他隐藏的或者不是很明显的特性在 ActiveX 控件中尚未提供。为了使用这些特性,我们就必须对 Rich Edit 控件的底层消息机制进行较深入的了解。二、关于 Rich Edit 控件 Rich Edit 控件的最初规范为 版。目前规范为 版。(译者注:目前最新版本为 版本!) 在创建一个 Rich Edit 控件之前, 你应该调用 LoadLibrary 函数来确认安装的 Rich Edit 控件的版本。下表显示了不同版本与其 DLL 间的对应关系。 Rich Edit 版本 DLL 名称版本号 低于 或更高 下表给出了不同版本 Windows 下与其包含的不同版本的 Rich Edit 对应关系: Windows XP SP1 包含 Rich Edit , Rich Edit , 和一个 Rich Edit 仿真程序。 Windows XP 包含 Rich Edit 和一个 Rich Edit 仿真程序。 Windows Me 包含 Rich Edit 和 。 Windows 2000 包含 Rich Edit 和一个 Rich Edit 仿真程序。 Windows NT 包含 Rich Edit 和 。 Windows 98 包含 Rich Edit 和 。 Windows 95 只包含 Rich Edit 。不过, 与 Windows 95 系统兼容,所以可以在正确安装后使用。 Rich Edit Rich Edit 包含几个新特性,比如支持 Unicode 和远东语言,多级撤消,以及大量的增强用户接口。 Rich Edit 采用与 Rich Edit 一致的 Win32 函数,结构和消息,极少例外。他们的区别在于: