ダイアログ ボックスの破棄

モーダル ダイアログ ボックスは通常、スタック フレームに作成され、それらを作成した関数が終了したときに破棄されます。 ダイアログ オブジェクトがスコープから外れると、そのデストラクターが呼び出されます。

モードレス ダイアログ ボックスは通常、親ビューまたはフレーム ウィンドウ、つまりアプリケーションのメイン フレーム ウィンドウまたはドキュメント フレーム ウィンドウによって作成されて所有されます。 既定の OnClose ハンドラーによって DestroyWindow が呼び出され、それによってダイアログ ボックス ウィンドウが破棄されます。 ダイアログ ボックスが単独で存在する場合、つまり、それを指し示すポインターや他の特殊な所有セマンティクスがない場合、開発者が PostNcDestroy をオーバーライドして C++ ダイアログ オブジェクトを破棄する必要があります。 また、OnCancel をオーバーライドして、その中から DestroyWindow を呼び出す必要があります。 それ以外の場合は、ダイアログ ボックスが不要になった時点で、その所有者が C++ オブジェクトを破棄する必要があります。

関連項目

MFC でのダイアログ ボックスの操作