モーダレスダイアログの作成(VC++) モーダレスダイアログの作成についてのメモです。 1.ダイアログの本体を作ります。普通のダイアログのリソースとクラスを、従来の手順で作成します。例えば、モーダレスダイアログのリソースIDはIDD_DIALOG1として、クラス名をCDlgTestとします。 2.親ウィンドウズ側(呼び出し元)での処理。まず、new でダイアログのオブジェクトを作成します。次に、ダイアログのメンバー関数のCreate()を、CDlgTest::IDDの引数で呼び出します。最後、ShowWindow()で、ダイアログを表示させます。 例:メインフレームクラスからモーダレスダイアログを表示する。 void CMainFrame::OnDlg() { CDlgTest* pDlg = new CDlgTest(); pDlg->Create(CDlgTest::IDD, this); pDlg->ShowWindow(SW_SHOW); }3.ダイアログのオブジェクトの廃棄。モーダレスダイアログをクローズした後に、ダイアログのオブジェクトの廃棄を行います。親のプログラムの何処かで、delete pDlg;文でオブジェクトを削除できますが、ダイアログのクラスのメンバー関数のPostNcDestroy()をオーバライドして、その中で、自ら自分自身を削除すれば便利です。 例: void CDlgTest::PostNcDestroy() { CDialog::PostNcDestroy(); delete this; } |