0

我需要调用CloseHandle()返回的句柄EnumWindows()吗?

4

2 回答 2

6

您只能在 kernel32 中的函数返回的句柄上使用 CloseHandle()。它们是引用计数的,关闭最后一个句柄会破坏对象。文件,互斥体,事件,那种对象。

窗口句柄不同,它们的生命周期由用户决定。或程序中的显式 DestroyWindow() 调用。您不想在枚举窗口时调用 DestroyWindow()。

GDI 句柄不同,它们通常具有专用的发布功能。CreatePen vs DeleteObject,GetDC vs ReleaseDC,CreateDC vs DeleteDC等。如有疑问,请始终咨询相应的创建函数,看看它需要如何再次释放。SDK 文档从不跳过这一点。否则,这会被遗漏记录,EnumWindows 文档没有说您需要释放句柄,所以您不需要。

所以不行。

于 2013-10-27T16:49:38.137 回答
0

我会说不。那是为了摧毁你不再需要的东西。你没有打电话CreateWindow

于 2013-10-27T16:37:39.207 回答