您的位置:首页 > 其它

VC6.0使用RichEdit2.0(GifOleControl 1.0.2 补充说明)

2009-07-24 11:22 465 查看
由于AfxInitRichEdit() 装载的是 RichEdit 1.0 Control (RICHED32.DLL),该版本BUG较多,需要在装载3.0的控件。方法如下:

以对话框为例:
(1) 增加一全局变量 HMODULE hMod;
(2) 在CxxxApp::InitInstance()中添加一句hMod = LoadLibrary(_T("riched32.dll"));
在CxxxApp::ExitInstance()中添加一句FreeLibrary(hMod);
(3) 在对话框上放一个richedit,文本方式打开.rc文件修改该richedit控件的类名"RICHEDIT" to "RichEdit20a".

如果对话框不出现,则在添加 AfxInitRichEdit 方法。

VC.NET以后版本:(msdn上的做法,适用于用VC.NET及以后版本创建的工程)
To update rich edit controls in existing Visual C++ applications to version 2.0,
open the .RC file as text, change the class name of each rich edit control from "RICHEDIT" to "RichEdit20a".
Then replace the call to AfxInitRichEdit with AfxInitRichEdit2.

动态加载richedit2.0:

在头文件中定义:

#define _RICHEDIT_VER 0x0300

#if (_RICHEDIT_VER >= 0x0200 )
#ifdef UNICODE
#define RICHEDIT_CLASS RICHEDIT_CLASSW
#else
#define RICHEDIT_CLASS RICHEDIT_CLASSA
#endif /* UNICODE */
#else
#define RICHEDIT_CLASS RICHEDIT_CLASS10A
#endif /* _RICHEDIT_VER >= 0x0200 */

则可以使用动态加载richedit:

CRichEditCtrl::CreateEx(NULL,RICHEDIT_CLASS,NULL, dwStyle&~WS_BORDER, rect, pParentWnd, nID);



申明:该控件可以免费使用。禁止恶意修改控件的版本信息。

DEMO下载:http://sv004d.mofile.com/7125120180791962/RGlzazEvNTQvNTQyNzI4MTQyMC83Lzc0OTQ0NjQwNjA4NjQ1Nw../TestGif.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: