您的位置:首页 > 其它

MFC 中初始化RichEidt控件

2016-03-14 11:29 211 查看
VS2010 MFC基于对话框的程序,添加RichEidt 2.0Control控件后,程序运行不起来,也没有任何错误信息提示;参考网上的方法,发现只有在对话框的构造函数中加入AfxInitRichEdit2()之后,程序才能运行起来;并且不需要显示的加载RICHED20.DLL/RICHED32.DLL。网上其它参考方法诸如"在XXAPP::InitInstance()加载riched20.dll",“更改.rc文件中的RICHEDIT为RichEdit20a”并不好使,更详细的资料请参考MSDN

以下是参考文章连接:http://www.doc88.com/p-294947394354.html

一、启用且初始化

在mfc中使用工具栏里的RichEdit 控件时,应该在对话框构造函数中用

AfxInitRichEdit()或者 AfxInitRichEdit2()。

放在OnInitDialog()中不起作用否则的话程序会运行不起来

也没有任何编译错误信息。

这俩函数是加载 Riched20.dll(Riched32.dll)的。

其中加载动态链接库的方法是需要在头文件stdafx.h或

构造函数中用这句代码

LoadLibrary(_T("RICHED20.DLL")); 或LoadLibrary(_T("RICHED32.DLL"));

如果要响应Rich Edit控件的OnEnChange事件,

需要在OnInitDialog()中添加

//CRichEditCtrl().SetEventMask(ENM_CHANGE);

GetDlgItem(RichEditID)->SetEventMask(ENM_CHANGE);

或者

m_CtrlRichEdit.SetEventMask(ENM_CHANGE);

其中m_CtrlRichEdit是Rich Edit关联的控件变量非CString或其他变量。

在Edit控件OnEnChange的事件中不要随便用UpdateData(FALSE)因为当输入字符超过256

个时输入焦点会自动跳转到首行第一格。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: