MFC对话框中拖入RICH EDIT2.0控件后报错的解决办法

MFC对话框中拖入RICH EDIT2.0控件后报错如下:
拖入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

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

xxwssll

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值