次の方法で共有


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

ここでは、以下の手順を説明します。

  • メニュー コマンドを使用してモーダル ダイアログ ボックスを表示します。

  • メニュー コマンドを使用してモードレス ダイアログ ボックスを表示します。

手順のサンプルは両方とも MFC アプリケーションを対象としており、MFC アプリケーション ウィザードで作成されるアプリケーションで利用できます。

それらの手順では、以下の名前と値を使用します。

項目

名前または値

アプリケーション

DisplayDialog

メニュー コマンド

[表示] メニューの [テスト] コマンド、コマンド ID = ID_VIEW_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); 
      

詳細については、以下のサポート技術情報の文書を参照してください。

  • Q251059:[HOWTO]:独自のウィンドウ クラス名を MFC ダイアログ ボックスを提供します。

参照

概念

ダイアログ ボックス

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