终于想明白了(wm_destroy、wm_close、wm_quit)

       这三个消息一直让我很头疼,不明白为什么要这么多消息才能结束一个程序,今天认真看了《深入浅出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是为了结束消息循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值