终于想明白了(wm_destroy、wm_close、wm_quit)
来源:互联网 发布:苹果mac系统修复教程 编辑:程序博客网 时间:2024/05/17 20:53
这三个消息一直让我很头疼,不明白为什么要这么多消息才能结束一个程序,今天认真看了《深入浅出MFC》,理清思路,终于自认为是解决了!
我理解的程序结束过程:
1、当按下Close按钮时,会激发消息WM_CLOSE,并通过消息循环,运行DefWindowProc
2、DefWindowProc则调用DestroyWindow使窗口在屏幕上消失
3、窗口消失的动作会激发消息WM_DESTROY的产生
4、此消息通过消息循环,又使case WM_DESTROY运行PostQuitMessage,并发送WM_QUIT消息给消息循环
5、WM_QUIT消息使GetMessage返回0值,即退出while循环,结束消息循环机制
6、至此,程序被完成结束任务
也就是说,在这个过程中,之所以要用到三个消息,是因为需要考虑:windows中的任何改变都会激发消息,包括窗口的消失行为;只要有消息在,消息循环机制就不能结束;只有等程序的消息循环机制退出,相应的程序才算真正结束。
wm_close-->wm_destroy-->wm_quit
wm_close是为了响应按下Close按钮的动作
wm_destroy是为了响应窗口消失动作
wm_quit是为了结束消息循环
- 终于想明白了(wm_destroy、wm_close、wm_quit)
- WM_QUIT,WM_CLOSE,WM_DESTROY
- WM_DESTROY、WM_CLOSE和WM_QUIT
- WM_CLOSE、WM_QUIT、WM_DESTROY区别
- WM_DESTROY, WM_CLOSE, WM_QUIT 区别
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- WM_DESTROY ,WM_CLOSE,WM_QUIT
- WM_QUIT,WM_CLOSE,WM_DESTROY .
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- WM_CLOSE, WM_DESTROY, WM_QUIT
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- WM_QUIT,WM_CLOSE,WM_DESTROY
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- WM_QUIT,WM_CLOSE,WM_DESTROY
- WM_CLOSE WM_DESTROY WM_QUIT消息
- WM_QUIT,WM_CLOSE,WM_DESTROY
- WM_CLOSE、WM_DESTROY、WM_QUIT
- 关于一个枚举IE表单的DLL,编译无错,但是得不到想到的结果。
- GIS应用八件新衣
- 如何使应用程序具有脚本支持功能收藏
- 解析v$log/v$logfile中status列值的含义
- 关于vs6.0 find in files功能。
- 终于想明白了(wm_destroy、wm_close、wm_quit)
- asp.net 中IE6中 URL传中文乱码的解决
- C#利用excel文件结构实现导出到excel
- vs2005中无法附加到进程的解决方案
- 如何活到100岁
- MapInfo位置服务智能解决方案
- python实现bitmap原理
- linux下安装数据库10G
- 小情歌