OnClose和OnDestroy
OnClose():消息响应函数,响应WM_CLOSE消息,当"关闭"按钮被单击的时候(而不是我们眼睛所见的对话框从屏幕上消失时),该函数被调用。用户在响应OnOk()或者OnCancel()函数之后,不会发送WM_CLOSE消息。
OnDestroy():消息响应函数,响应WM_DESTROY消息,当一个窗口即将被销毁时被发送。
在单视图程序中,根据<<深入浅出MFC>>所讲,程序退出时执行的操作顺序为
(1)用户点击退出按钮,发送了WM_CLOSE消息
(2)在WM_CLOSE消息的处理函数中,调用DestroyWindow()
(3)在DestroyWindow()中发送了WM_DESTROY消息
(4)在WM_DESTROY消息中调用PostQuitMessage(),发送WM_QUIT消息,结束消息循环
综上,程序先调用OnClose()(也可能不调用),然后调用OnDestroy()(必调用),所以,如果要进行程序结束时的清理工作,应该在OnDestroy()中,而不是在OnClose(),否则就有可能会出现内存泄漏的危险了!
OnClose和OnDestroy相关推荐
- 总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转)
目录(?)[+] cDialogonokenddialogdestroywindow区别 收藏 1摘要 2模式对话框的显示 3模式对话框的循环等待 4模式对话框的循环终止 5与OK和Cancle按钮的 ...
- OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数, 即WM消息响应函数. 从应用程序结构的角度,拿对话框 ...
- 关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框
关于OnOK().OnCancel().OnClose().OnDestroy() 模式对话框 http://www.cnblogs.com/minvt/archive/2009/11/16/1603 ...
- 【MFC】关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红 ...
- 总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
总结OnOK().OnCancel().OnClose().OnDestroy()之间的区别 第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDest ...
- 关于CDialog类的OnOK、OnCancel、OnClose和OnDestroy
首先,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红 ...
- 总结MFC中OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数, 即WM消息响应函数. 从应用程序结构的角度,拿对话框 ...
- 关于OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红 ...
- OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别归纳
首先,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红 ...
最新文章
- Ruby中的require_relative和require有什么区别?
- 复习一个知识点——原、反、补码以及取反操作
- java parameters用法_(四)Parameters,简单参数就用这个
- OAM Kubernetes 标准实现与核心依赖库发布 | 云原生生态周报 Vol. 52
- XML CDATA的作用
- 数组黑科技(偏性能方面)未完待更新...
- 网络基础3-1(细谈IP协议头, 网络层,子网划分,路由选择,数据链路层,以太网帧格式,MAC地址,再谈ARP协议)
- 【数据库的备份与还原】 .
- java 设置控制台标题_修改Tomcat控制台标题以及标题乱码处理
- c语言实现判断两个子图是否同构问题_经典问题-回溯法-最大团问题
- android launcher推荐,追求效率的你,需要这款 Android 最快启动器:FastKey Launcher
- 用计算机语言拜年,鸡年大吉!22种编程语言大拜年
- 10年java架构师教你如何快速打好Java基础?
- mnist数据集下载及使用
- 项目管理工具——Jira使用和配置
- matlab求极值的函数
- html5 app 原理,浅析开发html5 app的三大优势
- 传染病研究-靶向下一代宏基因组测序(mNGS)分析
- hone hone clock创意前端时钟
- 图片怎么修改尺寸大小?在线调整图像大小的方法
热门文章
- 公司网站服务器内存多大合适,一般服务器内存多大合适
- excel 取消合并单元格并填充
- 国内“惨淡”,国外“飞腾”,腾讯将增持育碧,力争成为最大股东
- 一个好玩有趣的Python手绘图形库(雷达图、柱状图、折线图...)
- MySQL服务无法启动(2003 - Can‘t connect to MySQL server on‘localhost‘
- Cocos Creator:解密华容道-数字拼盘
- 关于测绘软件一些优缺点的认识
- Jira和Confluence安装部署
- CSGO服务器插件配置教程SourceModMetaMod插件深度解析
- k8s_deployment 以及灰度发布、滚动发布和蓝绿发布的零散笔记