2013-01-17 36 views
2

我根據傳遞給我的EnumWindowsProc的一組關鍵字將窗口句柄存儲到列表中,我將其與窗口標題(調用GetWindowsText的結果)進行比較。當後者關閉時,窗戶的手柄會發生什麼變化?

我的EnumWindows函數在一個循環中被調用幾次,我的列表被創建爲不會多次添加相同的元素。此時,如果在運行時用戶關閉了我目前在列表中的其中一個窗口,我希望能夠遍歷列表並消除關閉窗口的句柄。我不想在列表中的每個句柄都使用IsWindowVisible,因爲我需要知道該窗口是否關閉,並且此函數將爲最小化窗口返回FALSE。

是否有任何其他方式我可以從窗口句柄知道它指向的窗口是否已關閉?

任何幫助將不勝感激! PS:我試圖把超鏈接放到所有引用的功能上,但我沒有足夠的聲望。對不起

回答

2

您可以使用IsWindow函數來檢查句柄是否有效。

請注意,由於窗口關閉後可以重新使用句柄,因此應該驗證窗口是否仍然符合初始條件(重新檢查其標題,類別等)。

+0

感謝您的回答!不過我還是很關心把手回收到同名窗口的可能性。這是否有可能? – wotann07

+0

概率很低,但它*可能會發生,如果您不期待它可能是一個討厭的事情來調試。說實話,我確信有很多程序忽略了這些細節。 – efotinis

相關問題