例 : メニュー コマンドによるダイアログ ボックスの表示

このトピックでは、次の手順について説明します。

  • メニュー コマンドからモーダル ダイアログ ボックスを表示する。

  • メニュー コマンドからモードレス ダイアログ ボックスを表示する。

どちらのサンプル手順も MFC アプリケーション用であり、MFC アプリケーション ウィザードを使用して作成したアプリケーション内で機能します。

この手順では、次の名前と値を使用します。

Item 名前または値
アプリケーション DisplayDialog
メニュー コマンド [View] (表示) メニューの [Test] (テスト) コマンド。コマンド ID = ID_VIEW_TEST
ダイアログ ボックス [Test] (テスト) ダイアログ ボックス。クラス = CTestDialog、ヘッダー ファイル = TestDialog.h、変数 = testdlg、ptestdlg
コマンド ハンドラー OnViewTest

モーダル ダイアログ ボックスを表示するには

  1. メニュー コマンドを作成します。メニューまたはメニュー項目の作成に関するページを参照してください。

  2. ダイアログ ボックスを作成します。ダイアログ エディターの開始に関するページを参照してください。

  3. ダイアログ ボックスのクラスを追加します。 詳細については、「クラスを追加する」を参照してください。

  4. [クラス ビュー] でドキュメント クラス (CDisplayDialogDoc) を選択します。 [プロパティ] ウィンドウで、[イベント] ボタンをクリックします。 メニュー コマンドの ID (ID_VIEW_TEST) をダブルクリックします。 次に、下矢印をクリックし、[OnViewTest の <追加>] を選択します。

    MDI アプリケーションのメインフレームにメニュー コマンドを追加した場合は、代わりにアプリケーション クラス (CDisplayDialogApp) を選択します。

  5. CDisplayDialogDoc.cpp (または CDisplayDialogApp.cpp) の既存の include ステートメントの後に、次の include ステートメントを追加します。

    #include "TestDialog.h"
    
  6. 次のコードを OnViewTest に追加して、関数を実装します。

    CTestDialog testdlg;
    testdlg.DoModal();
    

モードレス ダイアログ ボックスを表示するには

  1. 最初の 4 つの手順を実行して、モーダル ダイアログ ボックスを表示します。ただし、手順 4 でビュー クラス (CDisplayDialogView) を選択します。

  2. DisplayDialogView.h を編集します。

    • 最初のクラス宣言の前にダイアログ ボックス クラスを宣言します。
    class CTestDialog;
    
    • Attributes パブリック セクションの後にダイアログ ボックスへのポインターを宣言します。
    CTestDialog* m_pTestDlg;
    
  3. 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);
    

関連項目

ダイアログ ボックス
モーダルとモードレスのダイアログ ボックス