ダイアログ ボックスの破棄
更新 : 2007 年 11 月
通常、モーダル ダイアログ ボックスはスタック フレームで作成され、そのダイアログ ボックスを作成した関数が終了すると破棄されます。ダイアログ オブジェクトのデストラクタは、オブジェクトがスコープ外に出たときに呼び出されます。
通常、モードレス ダイアログ ボックスは親ビューまたはフレーム ウィンドウ (アプリケーションのメイン フレーム ウィンドウまたはドキュメント フレーム ウィンドウ) によって作成および所有されます。既定の OnClose ハンドラでは、ダイアログ ボックス ウィンドウを破棄する DestroyWindow が呼び出されます。ダイアログ ボックスがスタンドアロンであり、そのダイアログ ボックスへのポインタまたはほかの特殊な所有権を意味するものがない場合は、PostNcDestroy をオーバーライドして C++ ダイアログ オブジェクトを破棄する必要があります。加えて、OnCancel をオーバーライドし、そこから DestroyWindow を呼び出すことも必要です。オーバーライドしない場合は、ダイアログ ボックスのオーナーは、不要になった C++ オブジェクトを破棄する必要があります。