bmklocationmanager方法没有回调_实战经验:CRichEditCtrl的使用方法

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

关于RichEditCtrl的版本

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

517f2e374578461d9b88878beba2bb06.png

这里需要注意的是,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中初始化该控件,如下所示:

c3404750abe237db8c5111502c3d05d1.png

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

如何载入内容到RichEditCtrl控件

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

long StreamIn(int nFormat, EDITSTREAM& es);

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

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

52e3c762fc92e456c625fff55264e5e8.png

回调函数如下:

b2ad658bfba91d3f3f997d2353ef2a44.png

如何使用最新版4.1的控件

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

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

0d6157435b46f7c44f4c94eeb55dfc73.png

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

838122a75acfcf0c9b5cb21b88944d88.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值