CDialogImpl :: EndDialog中的ATLASSUME断言失败(IDCLOSE)

时间:2013-08-29 10:14:42

标签: windows visual-c++ atl assertion

我正在调用EndDialog(IDCLOSE)来结束继承CDialogImpl的类中的应用程序,并在ATLASSUME(m_bModal)中的CDialogImpl::EndDialog(int)上收到调试断言失败运行时错误。我做错了什么?

1 个答案:

答案 0 :(得分:1)

EndDialog旨在关闭模态对话框和should not be used for a dialog-based application。要终止应用程序调用{​​{3}}。

这是封装中断的地方之一,实现向用户公开了实现细节。 EndDialog在销毁对话框窗口之前执行其他操作。附加工作(如存储返回值)对于基于对话框的应用程序来说毫无意义。结果是您必须根据上下文调用不同的方法来终止对话框。