概述
MFC对话框中拖入RICH EDIT2.0控件后报错如下:
原因:未对Rich Edit控件初始化。
解决办法:
在应用程序类(App类)中的InitInstance函数体内添加以下语句:
AfxInitRichEdit(); 对应1.0版本
如果有2.0版本需要添加如下
AfxInitRichEdit2(); 对应2.0 版本
这个函数放的位置也有讲究:
BOOL CTest_RichEditApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
/将Rich Edit拖入对话框中后,要在这里对控件进行初始化,否则报错;初始化函数要放这个位置,不能放在最下面。
//AfxInitRichEdit();//对应1.0版本
AfxInitRichEdit2();//对应2.0 版本
// 创建 shell 管理器,以防对话框包含
// 任何 shell 树视图控件或 shell 列表视图控件。
CShellManager *pShellManager = new CShellManager;
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
CTest_RichEditDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
}
// 删除上面创建的 shell 管理器。
if (pShellManager != NULL)
{
delete pShellManager;
}
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
/将Rich Edit拖入对话框中后,要在这里对控件进行初始化,否则报错;但是初始化函数放在这儿也还是报同样的错误。
//AfxInitRichEdit();//对应1.0版本
//AfxInitRichEdit2();//对应2.0 版本
return FALSE;
}
参考自:https://www.cnblogs.com/MakeView660/p/7791872.html
最后
以上就是炙热菠萝为你收集整理的MFC对话框中拖入RICH EDIT2.0控件后报错的解决办法的全部内容,希望文章能够帮你解决MFC对话框中拖入RICH EDIT2.0控件后报错的解决办法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复