欢迎来到天天文库
浏览记录
ID:17943503
大小:355.50 KB
页数:20页
时间:2018-09-11
《rich edit 控件 sdk 参考手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、RichEdit控件SDK参考手册-1默认分类2008-12-1701:01:23阅读50评论0字号:大中小摘要:本文对RichEdit控件底层消息机制进行了讲解,以期读者对Windows平台下的RichEdit控件有一个更深入的认识,同时对于使用Win32SDK进行开发的人员具有一定参考价值。因为文章的初衷是引领VB程序员通过Win32API调用来扩展VB下的RichEdit控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考VisualStudio下的MSDNLibrary
2、。关键字:RichEditControl、RTF、SDK、MSDN。一、引言RichEdit控件是一个可用于输入、编辑、格式化、打印和保存文本的窗体。这些文本可以设置字符和段落格式,并且可以包含嵌入的COM对象。RichEdit控件提供格式化文本的编程接口。不过,应用程序必须实现这些用户接口组件,以便用户可以进行格式化操作。 RichEdit控件几乎支持所有用于多行Edit控件的消息和通知。因此,已经使用了Edit控件的程序可以很容易的改为RichEdit控件。额外的消息和通知使得应用程序可以访问RichE
3、dit控件特有的功能。获取更多关于Edit控件的信息,请参阅EditControls。正如大家所熟知的,Windows控件是基础窗口,它处理那些控制窗口显示和特征的消息。而ActiveX控件是把那些消息变成属性和方法的COM容器。RichEditWindows控件是EditWindows控件的扩展集,TextBoxActiveX控件也是从它派生而来。RichEdit能够识别Edit消息并且加入了自己特有的消息。你可以在Win32帮助文件中认出Edit和RichEdit的消息常数,因为他们均采用EM_作为前缀
4、。ActiveXRichTextBox控件将绝大多数的这种消息映射为其属性。例如,EM_LIMITTEXT与MaxLength属性相对应。但是你同时会注意到一些感兴趣的消息并没有与之对应的RichTextBox属性。为什么呢?ActiveX控件为最通用的特性提供方法和属性,更具体讲,是提供给VB设计者最感兴趣的特性。设计者们似乎喜欢每个新版本里更多的特征。例如,TextBox和RichTextBox控件现在具备Locked属性。在旧版本的VB中你不得不通过EM_SETREADONLY消息来模拟。但是,还有许
5、多其他隐藏的或者不是很明显的特性在ActiveX控件中尚未提供。为了使用这些特性,我们就必须对RichEdit控件的底层消息机制进行较深入的了解。二、关于RichEdit控件RichEdit控件的最初规范为1.0版。目前规范为2.0版。(译者注:目前最新版本为4.1版本!)在创建一个RichEdit控件之前,你应该调用LoadLibrary函数来确认安装的RichEdit控件的版本。下表显示了不同版本与其DLL间的对应关系。RichEdit版本DLL名称版本号1.0RICHED32.DLL 2.0RICHE
6、D20.DLL低于5.30.23.12003.0RICHED20.DLL5.30.23.1200或更高4.1Msftedit.dll 下表给出了不同版本Windows下与其包含的不同版本的RichEdit对应关系:WindowsXPSP1包含RichEdit4.1,RichEdit3.0,和一个RichEdit1.0仿真程序。WindowsXP包含RichEdit3.0和一个RichEdit1.0仿真程序。WindowsMe包含RichEdit1.0和3.0。Windows2000包含RichEdit3.0
7、和一个RichEdit1.0仿真程序。WindowsNT4.0包含RichEdit1.0和2.0。Windows98包含RichEdit1.0和2.0。Windows95只包含RichEdit1.0。不过,Riched20.DLL与Windows95系统兼容,所以可以在正确安装后使用。2.1RichEdit2.0RichEdit2.0包含几个新特性,比如支持Unicode和远东语言,多级撤消,以及大量的增强用户接口。RichEdit2.0采用与RichEdit1.0一致的Win32函数,结构和消息,极少例外
8、。他们的区别在于:·RichEdit1.0窗体类的名字叫“RichEdit”。RichEdit2.0同时具有ANSI和Unicode窗体类,“RichEdit20A”和“RichEdit20W”分别表示对应的RichEdit窗体类,我们RichEdit.H文件定义的RICHEDIT_CLASS常数来区分,而具体采用哪一个取决于UNICODE编译标志。·在RichEdit2.0中,如果你创建一个Unicode控件,
此文档下载收益归作者所有