我有这样一种情况,当我收到一条消息时,我必须从hWnd中删除一个窗口。我认为这一定是可能的,因为CreateWindowEx通过返回一个HWND来创建一个对象,我必须能够删除一个。
注意: hWnd位于其他进程上。
发布于 2012-09-22 20:24:09
正确的方法是向关联窗口发送WM_CLOSE消息,或者简单地调用DestroyWindow将WM_DESTROY消息发送到窗口。
线程不能使用使用DestroyWindow销毁由其他线程创建的窗口。
WM_CLOSE和WM_DESTROY之间的差异:
在发送WM_CLOSE之后,目标应用程序可以在销毁窗口之前提示用户进行确认,方法是处理WM_CLOSE消息并仅在用户确认选择时调用DestroyWindow函数。
换句话说,可以拒绝使用WM_CLOSE关闭窗口,但它被认为比WM_DESTROY更“安全”,因为应用程序可以保存请求确认和保存更改。但是,如果需要强制关闭,请使用WM_DESTROY。
HWND结构指针是由系统管理的,不要尝试删除它们!
如果使用WM_CLOSE消息,那么哪个进程拥有窗口并不重要。
发布于 2012-09-22 20:19:24
使用SendMessage向窗口发送一条WM_CLOSE消息。
https://stackoverflow.com/questions/12543668
复制相似问题