虚拟函数DestroyWindow()和视窗消息OnDestroy()的区别在何处?

本文探讨了在编程中无模式对话框的销毁机制。通过主动调用DestroyWindow()函数关闭窗口,系统将发送WM_DESTROY消息并触发OnDestroy()函数执行,完成资源释放过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q:

今天在学习模式和无模式对话框时发现无模式对话框需要在退出时销毁,否则会发生内存泄露,  
  我便在此无模式对话框的OnOK()中调用DestroyWindow(),然后重载OnDestory(),其中delete   this;但是奇怪的是我调用的明明是虚拟函数DestroyWindow()但系统却调用消息OnDestroy(),是我的理解有误,还是有别的原因?希望高手不吝赐教!

A:

这两个函数可以理解成一个是主动的,   另一个是被动的.  
  用户主动调用DestroyWindows来关闭窗口,   而当窗口被关闭时OnDestroy函数   被   调用!  

 

你调用DestroyWindow(),那么系统就会发一个WM_DESTROY的消息,这个消息会调用OnDestroy()函数.

DestroyWindow()     ------>   WM_DESTROY+   WM_NCDESTROY   ------>OnDestroy()  
                                    发消息                                                     响应消息映射

转载于:https://www.cnblogs.com/elanp/archive/2009/11/16/1603863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值