我無法確保託管窗口被正確銷燬。WPF互操作 - HwndHost不會自動銷燬託管窗口
我有一個HwndHost
派生類,我在TabControl中顯示(儘管這可能是不相關的)。我試圖在選項卡關閉時銷燬託管內容(而不是當包含窗口關閉時)。
我當前的代碼爲myControlHost.Dispose()
,它確保HwndHost.DestroyWindowCore
被立即調用。問題是,DestroyWindowCore實際上並不銷燬託管的HWND內容!
我原以爲這足以確保潛在的CWnd
衍生應用程序收到WM_CLOSE
什麼的,但這似乎並沒有發生 - Spy ++只報告發送的註冊消息「HwndSubclass.DetachMessage」。
我讀過你不應該明確地發送你的託管窗口WM_CLOSE
在DestroyWindowCore
,因爲這應該是自動發生的。
當手動刪除HwndHost
衍生控件時,確保託管窗口正確銷燬的正確方法是什麼?
謝謝,我最終從DestroyWindowCore()調用了'DestroyWindow()',但不想更新這篇文章,直到我找到原來的引用聲明你不應該這樣做。雖然懶惰。 我懷疑我誤解了文檔或文檔不正確(它實際上只是代碼示例中的一條評論) – Cechner 2011-05-11 00:59:03