加拿大30秒

Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
您的位置: Linux安全网 > Linux编程 > » 正文

一种在VC6中使用RichEdit4.1(或更高版本)的极简易方法

来源: 未知 分享至:

以MFC向导建立的多文档程序为例,
假设你的工程名字为MyApp,那么生成的RichEdit视图类,应该是以下的样子(它派生自CRichEditView):

class CMyAppView : public CRichEditView
{
...
}


因为VC6的MFC4.2中,捆绑的是RichEdit1.0,为了用新版本替换这早已经过时的版本,只需要进行以下步骤:

1.在CMyAppView类的构造函数中,添加下面的一句:

CMyAppView::CMyAppView()
{
m_strClass
=TEXT("RichEdit50W");//添加这一句
...
}


2.在应用程序一开始的地方,加载对应版本的RichEdit所在的DLL。在这里,我们要使用RichEdit50W,那么就要加载msftedit.dll。

CMyApp::CMyApp()
{
CoInitialize(NULL);
//必须首先调用
//m_hinstRE41是我们自己需要添加的CMyApp的一个成员变量
m_hinstRE41=LoadLibrary(TEXT("msftedit.dll"));//添加这一句
...
}
CMyApp::
~CMyApp()
{
if(m_hinstRE41)
FreeLibrary(m_hinstRE41);
}
CMyApp::InitInstance()
{
AfxOleInit();
//OLE初始化,必须要添加
AfxEnableControlContainer(); //也要添加这一行
...
}

3.大功告成。其他什么工作都不需要做了。
接下来的诸如高级格式化、复制粘贴图片、对象等等,都由MFC的框架为我们完成了。也完全不需要去自己手工控制Richedit的创建以及控件消息的处理。
我自己也曾经想过要重新封装一个高版本的RichEdit控件,但是后来找到这个方法后,我自己也惊异于此法之简单便捷。以上这些是本人的一点点研究成果,有兴趣的朋友可以移步 CodeProject.com,在那里我有详细的原理解释。
加拿大30秒链接:http://www.codeproject.com/KB/edit/UseRichEdit50.aspx

原创文章,转载请注明!


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史