MFC 中初始化RichEidt控件

来源:互联网 发布:淘宝定价 编辑:程序博客网 时间:2024/04/30 03:24

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

0 0