※ ChatGPTを利用し、要約された質問です(原文:モードレスダイアログ ボックスの破棄について)
モードレスダイアログ ボックスの破棄について
このQ&Aのポイント
VC++6.0でアプリケーションを開発していますが、モードレスダイアログの破棄の事で困っています。
膨大な数の画面とコントロールを持つアプリケーションで、子ダイアログボックスを使いたいと思っていますが、その破棄方法について分からないです。
CWnd::DestroyWindow関数を使ってダイアログボックスを破棄することができるようですが、メモリの解放も同時に行われるのかが不明です。ご教示いただけますか?
はじめまして。
VC++6.0でアプリケーションを開発していますが、モードレスダイアログの破棄の事で困っています。
まずアプリケーションの状況から説明します。
メインフレームを親として、複数の子ダイアログボックスが大量にある状態です。
1つのプロセスで使用している画面数、コントロール数とも膨大な為、子ダイアログを使うたびに作成→破棄(メモリの解放)を繰り返すようにしたいと思っています。
Create 関数で作成したダイアログ ボックスを破棄するには、CWnd::DestroyWindow 関数を使えばいいようですが、この関数を使用すればメモリの解放もされているのでしょうか?
タスクマネージャを見る限り、メモリの使用量は減っていないようなのですが・・・
NSDNなどで色々調べたのですが、CWnd::PostNcDestroy関数も合わせて使用し、delete this としないとメモリの解放は出来ないのかどうかが、いまいち良く分かりません。
残り時間がほとんどなく、本当に困っています。
どなたかよろしくお願いいたします。
お礼
jx-wordさん、回答ありがとうございました。 その後自分でも、ダイアログの生成/破棄を繰り返しやってみたところ、ある程度するとメモリの増減がある事が分かりました。 なので、とりあえずDestroyWindowだけで解放されているようですね。