У меня проблемы с обеспечением правильного уничтожения размещенного окна.
У меня есть класс HwndHost
, который я отображаю в TabControl (хотя это, вероятно, не имеет значения).Я пытаюсь уничтожить размещенный контент при закрытии вкладки (а не при закрытии содержащего окна).
В настоящее время у меня есть код с эффектом myControlHost.Dispose()
, который гарантирует немедленный вызов HwndHost.DestroyWindowCore
.Проблема в том, что DestroyWindowCore на самом деле не уничтожает размещенный контент HWND!
Я бы подумал, что этого достаточно, чтобы гарантировать, что базовое CWnd
-приведенное приложение получает WM_CLOSE
или что-то еще, но это делаетпохоже, этого не происходит - Spy ++ сообщает только об отправке зарегистрированного сообщения "HwndSubclass.DetachMessage".
Я прочитал, что вы не должны явно отправлять ваше размещенное окно WM_CLOSE
в DestroyWindowCore
, поскольку это должно происходить автоматически.
Как правильно убедиться, что размещенное окно корректно уничтожается при ручном удалении элемента управления HwndHost
?