VIP分享屋
百度云会员分享平台

实战经验:CRichEditCtrl的使用方法

文章页 文章页

RichEditCtrl是一款富文本编辑器控件,相对于CEdit来说,其功能更加强大。另外,它自带RTF格式文本的解析功能。今天就总结一下我在使用这款控件的一些经验。

关于RichEditCtrl的版本

随着Windows每次版本的发布,RichEditCtrl的版本也在不断升级。从最初的1.0版本一直到目前最新的4.1版本。以下版本历史来自的MSDN:

实战经验:CRichEditCtrl的使用方法

这里需要注意的是,1.0版本对应的DLL文件是Riched32.dll,2.0和3.0对应的DLL文件是Riched20.dll,最新的4.1对应的DLL是Msftedit.dll。另外,1.0~3.0对应的Window Class名称没有变,这样,应用程序就可以无缝使用各个版本而无需修改代码。对于各个DLL文件,我们可以在system32目录下找到它们。

关于RichEditCtrl的初始化

在MFC应用程序中使用RichEditCtrl控件之前,必须要在InitInstance中初始化该控件,如下所示:

实战经验:CRichEditCtrl的使用方法

这里的AfxInitRichEdit2将尝试加载Riched20.dll这个DLL,并返回加载是否成功的结果。如果想使用1.0版本,还有对应的AfxInitRichEdit可供调用。

如何载入内容到RichEditCtrl控件

RichEditCtrl控件有个方法StreamIn,我们可以使用这个方法将我们需要显示在控件的内容渲染到控件上。该函数原型如下:

long StreamIn(int nFormat, EDITSTREAM& es);

该方法的工作原理:调用方需要提供一个回调函数指针,该回调函数周期性的拷贝文本内容到控件缓冲区,直到文本内容全部拷贝完毕。

以下代码演示了该回调函数的使用:

实战经验:CRichEditCtrl的使用方法

回调函数如下:

实战经验:CRichEditCtrl的使用方法

如何使用最新版4.1的控件

在默认情况下,我们从VS工具箱拖出来的控件为2.0版本。那么如何使用最新的4.1版本呢?

首先,我们需要在CWinApp的InitInstance中加载4.1对应的DLL:Msftedit.dll,示例代码如下:

别忘了在ExitInstance中释放该Lib,示例代码如下:

实战经验:CRichEditCtrl的使用方法

然后,打开rc文件,进入文本编辑模式,将”RichEdit20W”改为”RichEdit50W”,保存后编译工程,就可以通过Spy++查看控件已经升级到4.1版本了.

今天总结了关于CRichEditCtrl的一些开发经验,详细的使用方法,请大家参考MSDN中的相关内容。


知道屋是一个专门解答为什么知识分享问答平台,欢迎在知道屋问答库查找您感兴趣的知识.

文章内容来源于网络,发布于 科技栏目  ,由 知道屋-知识分享平台  进行整理排版,如有侵权请联系admin@zhidaowu.com

赞(0) 打赏
未经允许不得转载:VIP分享屋-百度云会员分享平台 » 实战经验:CRichEditCtrl的使用方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

VIP分享屋-百度云会员分享平台

关于我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏