首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除HWND对象

删除HWND对象
EN

Stack Overflow用户
提问于 2012-09-22 20:17:18
回答 2查看 6.7K关注 0票数 5

我有这样一种情况,当我收到一条消息时,我必须从hWnd中删除一个窗口。我认为这一定是可能的,因为CreateWindowEx通过返回一个HWND来创建一个对象,我必须能够删除一个。

注意: hWnd位于其他进程上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-22 20:24:09

正确的方法是向关联窗口发送WM_CLOSE消息,或者简单地调用DestroyWindowWM_DESTROY消息发送到窗口。

线程不能使用使用DestroyWindow销毁由其他线程创建的窗口。

WM_CLOSE和WM_DESTROY之间的差异:

在发送WM_CLOSE之后,目标应用程序可以在销毁窗口之前提示用户进行确认,方法是处理WM_CLOSE消息并仅在用户确认选择时调用DestroyWindow函数。

换句话说,可以拒绝使用WM_CLOSE关闭窗口,但它被认为比WM_DESTROY更“安全”,因为应用程序可以保存请求确认和保存更改。但是,如果需要强制关闭,请使用WM_DESTROY。

HWND结构指针是由系统管理的,不要尝试删除它们!

如果使用WM_CLOSE消息,那么哪个进程拥有窗口并不重要。

票数 6
EN

Stack Overflow用户

发布于 2012-09-22 20:19:24

使用SendMessage向窗口发送一条WM_CLOSE消息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12543668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档