获取 MFC 对话框关闭原因
Posted
技术标签:
【中文标题】获取 MFC 对话框关闭原因【英文标题】:Getting MFC DIalog close reason 【发布时间】:2013-09-20 14:16:37 【问题描述】:对于CDialog
,System.Windows.Forms.CloseReason
的 MFC 等效项是什么?
如何在MFC CDialog
中捕获FormClosing
事件?
【问题讨论】:
【参考方案1】:没有办法区分关闭对话框后关闭的原因。 当我查看 CloseReasons 列表时,大多数原因都会创建不同的消息(如关机)。我看到的唯一方法是为对您很重要的事件/情况实现消息处理程序。
注意:某些 CloseReasons 对于 MFC 应用程序中的模态对话框没有意义(如 FormOwnerClosing)...
【讨论】:
【参考方案2】:CDialog::DoModal 返回一个值,具体取决于它的关闭方式(可以是 IDOK、IDCANCEL 或其他值 - 请参阅此参考:http://msdn.microsoft.com/en-us/library/619z63f5%28v=vs.90%29.aspx)。
您可以使用对话框中的各种消息来判断它何时关闭 - OnCancel (http://msdn.microsoft.com/en-us/library/kw3wtttf%28v=vs.90%29.aspx) 或 OnOK (http://msdn.microsoft.com/en-us/library/66b3y2ab%28v=vs.90%29.aspx) 是其中一些更有趣的消息。
【讨论】:
这没有帮助。我通过任务管理器杀死它,按ESC键,按取消按钮。所有这些都给我返回码2。我无法区分。以上是关于获取 MFC 对话框关闭原因的主要内容,如果未能解决你的问题,请参考以下文章