古いコードがあります。コードは次のように機能します:Event1が発生した後、ウィンドウ オブジェクト ( CWindowImplclass から継承) をヒープに作成します。が発生した後Event2、ウィンドウで行われた変更を適用し、 を呼び出してウィンドウを閉じ、 を呼び出しDestroyWindow()てヒープ内のメモリを解放しますdelete。
このウィンドウのすべてのメッセージが処理される前にウィンドウ オブジェクトを削除するため、このコードはバグです。deletewindow オブジェクトを呼び出しても安全な時期を確実に知る方法は?
私が見つけた唯一の解決策は、オーバーライドOnFinalMessageしてそこで呼び出すdelete thisことです。オブジェクトがヒープでのみ作成されることを保証する必要があるため、私はそれが好きではありません。より良いアイデアはありますか?
ありがとうございました。