如何让WM_CLOSE一定调用WM_DESTROY消息 MSDN,对WM_CLOSE的解释中有这样一说WM_CLOSE在默认情况下是调用WM_DESTROY。但如何在任何情况下都调用WM_DESTROY呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像一个程序关闭,都会调用wm_destroy的啊 在wm_close的处理函数中直接调用DestroyWindow()函数。 好像是WM_CLOSE一定调用WM_DESTROY吧然后调用WM_QUIT 好象跟你们说的有点出入哦,MSDN,中是这样说的:by default,调用DestroyWindow。直接用DestroyWindow()来关闭好象有问题,很久以前用过,但有一次在某一台系统是98的机上有问题。我记得MSDN对wm_destroy消息的解释时,系统不能控制当时出现异常的情况,也就是未定义的。 对了,这是在多线程中使用 的。在后来创建的线程中创建了主窗口。而后在该窗口中调用了WM_CLOSE但WM_CLOSE消息一会调用WM_DESTROY消息,一会又不调用WM_DESTROY消息。 DestroyWindow()只是销毁窗口,WM_DESTROY会终止整个消息循环,两个不一样。所说的默认,我想可能就是如果不人工干预的话,他就这么做了 一群白痴,乱讲话WM_CLOSE 消息处理中,请示用户关闭应用程序,如果不关闭,则可以不做任何处理;如果要关闭,则需要调用 DestroyWindow调用DestroyWindow,则会发出另外一个消息 WM_DESTROYWM_DESTROY 消息处理中,则调用PostQuitMessage(0)调用PostQuitMessage(0),则会又发出另外一个消息WM_QUIT由WM_QUIT消息来结束消息循环,才能真下退出应用程序。 楼上的消息调用分析的很对,WM_CLOSE只是让程序处于关闭的有信号状态。这些调用过程在MSDN上都有,但现在问题的关键是:在WM_CLOSE 消息请示用户关闭应用程序时,保证是需要关闭,及如何使它一定调用DestroyWindow,而不会出现不做任何处理的现象。MSDN,只说default情况下是调用DestroyWindow,但没有说明什么情况是default,什么情况又不是。 我给你讲的很明白。你最好学习一下SDK编程,不要钻死胡同。 要不强行的来一个SendMessage(WM_DESTROY) 关于将文件版本资源编译进程序里。 通过PID或者进程句柄如何得到进程名 求助,如何实现不规则位图的按钮. 如何继承windows的鼠标类? ◇◆◇老调重弹,仍然是MSDN的问题◇◆◇ 一个CTime::Format的格式化问题(有代码片段) 如何用VC编程的方法得到当前CPU的占用率? CDC pDC问题 关于输入流错误状态的一个疑问 如何在我的应用程序中使用file manage的树型目录和列表。 MSDN里面在那里查看错误的解释啊? vc中如何将自建的cpp和h文件联系起来
MSDN,中是这样说的:
by default,调用DestroyWindow。
直接用DestroyWindow()来关闭好象有问题,很久以前用过,但有一次在某一台系统是98的机上有问题。我记得MSDN对wm_destroy消息的解释时,系统不能控制当时出现异常的情况,也就是未定义的。
在后来创建的线程中创建了主窗口。
而后在该窗口中调用了WM_CLOSE
但WM_CLOSE消息一会调用WM_DESTROY消息,一会又不调用WM_DESTROY消息。
所说的默认,我想可能就是如果不人工干预的话,他就这么做了
如果不关闭,则可以不做任何处理;
如果要关闭,则需要调用 DestroyWindow调用DestroyWindow,则会发出另外一个消息 WM_DESTROYWM_DESTROY 消息处理中,则调用PostQuitMessage(0)
调用PostQuitMessage(0),则会又发出另外一个消息WM_QUIT由WM_QUIT消息来结束消息循环,才能真下退出应用程序。
这些调用过程在MSDN上都有,
但现在问题的关键是:
在WM_CLOSE 消息请示用户关闭应用程序时,保证是需要关闭,及如何使它一定调用DestroyWindow,而不会出现不做任何处理的现象。
MSDN,只说default情况下是调用DestroyWindow,但没有说明什么情况是default,什么情况又不是。