例 : メニュー コマンドによるダイアログ ボックスの表示
ここでは、以下の手順を説明します。
メニュー コマンドを使用してモーダル ダイアログ ボックスを表示します。
メニュー コマンドを使用してモードレス ダイアログ ボックスを表示します。
手順のサンプルは両方とも MFC アプリケーションを対象としており、MFC アプリケーション ウィザードで作成されるアプリケーションで利用できます。
それらの手順では、以下の名前と値を使用します。
項目 |
名前または値 |
---|---|
アプリケーション |
DisplayDialog |
メニュー コマンド |
[表示] メニューの [テスト] コマンド、コマンド ID = ID_VIEW_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);
詳細については、以下のサポート技術情報の文書を参照してください。
- Q251059:[HOWTO]:独自のウィンドウ クラス名を MFC ダイアログ ボックスを提供します。