例 : メニュー コマンドによるダイアログ ボックスの表示
このトピックでは、次の手順について説明します。
メニュー コマンドからモーダル ダイアログ ボックスを表示する。
メニュー コマンドからモードレス ダイアログ ボックスを表示する。
どちらのサンプル手順も MFC アプリケーション用であり、MFC アプリケーション ウィザードを使用して作成したアプリケーション内で機能します。
この手順では、次の名前と値を使用します。
Item | 名前または値 |
---|---|
アプリケーション | DisplayDialog |
メニュー コマンド | [View] (表示) メニューの [Test] (テスト) コマンド。コマンド ID = ID_VIEW_TEST |
ダイアログ ボックス | [Test] (テスト) ダイアログ ボックス。クラス = CTestDialog、ヘッダー ファイル = TestDialog.h、変数 = testdlg、ptestdlg |
コマンド ハンドラー | OnViewTest |
モーダル ダイアログ ボックスを表示するには
メニュー コマンドを作成します。メニューまたはメニュー項目の作成に関するページを参照してください。
ダイアログ ボックスを作成します。ダイアログ エディターの開始に関するページを参照してください。
ダイアログ ボックスのクラスを追加します。 詳細については、「クラスを追加する」を参照してください。
[クラス ビュー] でドキュメント クラス (CDisplayDialogDoc) を選択します。 [プロパティ] ウィンドウで、[イベント] ボタンをクリックします。 メニュー コマンドの ID (ID_VIEW_TEST) をダブルクリックします。 次に、下矢印をクリックし、[OnViewTest の <追加>] を選択します。
MDI アプリケーションのメインフレームにメニュー コマンドを追加した場合は、代わりにアプリケーション クラス (CDisplayDialogApp) を選択します。
CDisplayDialogDoc.cpp (または CDisplayDialogApp.cpp) の既存の include ステートメントの後に、次の include ステートメントを追加します。
#include "TestDialog.h"
次のコードを
OnViewTest
に追加して、関数を実装します。CTestDialog testdlg; testdlg.DoModal();
モードレス ダイアログ ボックスを表示するには
最初の 4 つの手順を実行して、モーダル ダイアログ ボックスを表示します。ただし、手順 4 でビュー クラス (CDisplayDialogView) を選択します。
DisplayDialogView.h を編集します。
- 最初のクラス宣言の前にダイアログ ボックス クラスを宣言します。
class CTestDialog;
- Attributes パブリック セクションの後にダイアログ ボックスへのポインターを宣言します。
CTestDialog* m_pTestDlg;
DisplayDialogView.cpp を編集します。
- 既存の include ステートメントの後に、次の include ステートメントを追加します。
#include "TestDialog.h"
- 次のコードをコンストラクターに追加します。
m_pTestDlg = NULL;
- 次のコードをデストラクターに追加します。
delete m_pTestDlg;
- 次のコードを
OnViewTest
に追加して、関数を実装します。
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);