我无法确保正确销毁托管窗口。
我有一个HwndHost
在 TabControl 中显示的派生类(尽管这可能无关紧要)。我试图在选项卡关闭时销毁托管内容(而不是在包含窗口关闭时。)
我目前有 的代码myControlHost.Dispose()
,它确保HwndHost.DestroyWindowCore
立即调用它。问题是,DestroyWindowCore 实际上并没有销毁托管的 HWND 内容!
我原以为这足以确保底层CWnd
派生的应用程序接收到 aWM_CLOSE
或其他内容,但这似乎没有发生 - Spy++ 仅报告正在发送的注册消息“HwndSubclass.DetachMessage”。
我已经读到您不应该在 中明确发送您的托管窗口 a WM_CLOSE
,DestroyWindowCore
因为这应该自动发生。
HwndHost
手动删除衍生控件时,确保正确销毁托管窗口的正确方法是什么?