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
个时输入焦点会自动跳转到首行第一格。