我的 IE 在另一个新对话框的 EndDialog 和 DoModal 上崩溃

Posted

技术标签:

【中文标题】我的 IE 在另一个新对话框的 EndDialog 和 DoModal 上崩溃【英文标题】:My IE crashes on EndDialog and DoModal on another new dialog 【发布时间】:2014-05-24 09:59:42 【问题描述】:

我正在使用 m_nRet = DoModal(); 打开一个 CDialog(CAxDialogImpl)

在此对话框中,我有一个选项按钮。当我单击此选项按钮时,我需要关闭此现有对话框并打开另一个对话框(我的选项对话框)。为了关闭现有对话框,我首先调用EndDialog(m_nRet),然后再次调用DoModal() 打开我的选项对话框。

我能够成功关闭并重新打开另一个对话框。但是,当我尝试关闭这个新选项对话框时,我在后台的 IE 页面会刷新并显示一条消息:

此网页的问题导致 Internet Explorer 关闭并重新打开选项卡。

我是这项技术的新手,非常感谢您的帮助。谢谢!

【问题讨论】:

您是否在第一个对话框类中为您的选项对话框调用DoModal()(即在您调用EndDialog() 的同一位置)? 您好,爱德华,感谢您的回复!是的,我正在为第一个对话框类中的选项对话框调用 DoModal()(我在其中调用 EndDialog()。 这肯定会导致不可预知的行为——请参阅下面的答案 【参考方案1】:

单击选项按钮时,您需要设置成员变量(例如:m_bInvokeOptionsDlg)或唯一的返回值并退出对话框。

然后调用函数应该检查这个值并调用选项对话框。 调用返回后,您可以循环返回并再次打开初始对话框。

另一种选择是在单击选项按钮时直接调用选项对话框,但随后两个对话框都将可见。

【讨论】:

以上是关于我的 IE 在另一个新对话框的 EndDialog 和 DoModal 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC 中调用 EndDialog() 时,类析构函数何时触发?

IE无法打开新窗口怎么办?

对话框

WiX:找到重复的符号“ControlEvent:ExitDialog/Finish/EndDialog/Return/1”

在另一个对话框将数据插入 DB 后刷新 DataGridView

Microsoft Bot Framework 退出对话框