ホストされているウィンドウが正しく破棄されていることを確認するのに問題があります。
HwndHost
TabControlに表示している派生クラスがあります(おそらくそれは無関係ですが)。タブが閉じたときに(含まれているウィンドウが閉じたときではなく)、ホストされているコンテンツを破棄しようとしています。
私は現在、の効果のコードを持っています。myControlHost.Dispose()
これにより、HwndHost.DestroyWindowCore
すぐに呼び出されます。問題は、DestroyWindowCoreがホストされているHWNDコンテンツを実際に破棄しないことです。
CWnd
基盤となる派生アプリケーションが何かを確実に受信するにはこれで十分だと思いましたがWM_CLOSE
、これは発生しないようです。Spy++は、送信された登録済みメッセージ「HwndSubclass.DetachMessage」のみを報告します。
WM_CLOSE
これは自動的に行われることになっているため、ホストされているウィンドウを明示的に送信することは想定されていないことを読みましたDestroyWindowCore
。
HwndHost
派生コントロールを手動で削除するときに、ホストされているウィンドウが正しく破棄されるようにする正しい方法は何ですか?