OnClose()与OnDestroy()

转载 2012年03月27日 12:05:35

原创地址:http://blog.csdn.net/jiangsok/archive/2009/07/22/4369094.aspx 

基于对话框的MFC程序,发现每次程序退出时,托盘的小图标不能自动消失,鼠标移上去之后才能消失,比较不爽。

后来发现我删除这个图标的代码是在自己重写的OnClose()函数中,结果断点一看,OnClose()根本没有被调用,确切的说是点“退出”不调用,点右上角的“叉”才调用,难怪出现这个结果,后来还有我想在OnClose()函数中有其他操作也没有被调用。

在http://www.qqgb.com/Program/VC/VCJC/Program_250726.html上看到了一个很好的回帖:

1. 点“确定”、“取消”时的关闭路由为 
OnOK()或OnCancel() ---> EndDialog() ---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy() 
2. 点“关闭”标题栏按钮的关闭路由为 
OnClose()---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy()

所以OnClose()并不是关闭路由的必经路径, OnDestroy() 才是程序关闭的必经路径,因此重写OnDestroy() ,把我需要在程序结束的操作全部放到了这个函数里面,OK了,不过还要记得把ON_WM_DESTROY()加到MESSAGE MAP里面。

相关文章推荐

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转)

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) 第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和On...

OnOK()、OnCancel()、OnClose()、OnDestroy()(转)

OnOK()、OnCancel()、OnClose()、OnDestroy()(转)  (2010-09-12 17:17:28) 转载▼ 标签:  杂谈 ...

关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) 2009年09月22日 下午 08:33 第一,OnOK()和OnCancel()是...

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转)

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) 2009年09月22日 下午 08:33 第一,OnOK()和OnCancel()是CDialog基...

关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框

转自http://www.cnblogs.com/minvt/archive/2009/11/16/1603841.html关于OnOK()、OnCancel()、OnClose()、OnDestro...

MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关

一、DestroyWindow: The MFC framework manages window destruction as well as creation for those windo...

MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关

一、DestroyWindow: The MFC framework manages window destruction as well as creation for those windo...
  • whh_tg
  • whh_tg
  • 2013-01-06 13:35
  • 9917

关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框

总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) 2009年09月22日 下午 08:33 第一,OnOK()和OnCancel()是CDialog基...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)