CDialog クラス

画面のダイアログ ボックスを表示するために使用される基本クラスです。

class CDialog : public CWnd

メンバー

132s802t.collapse_all(ja-jp,VS.110).gifパブリック コンストラクター

名前

説明

CDialog::CDialog

CDialog オブジェクトを構築します。

132s802t.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

説明

CDialog::Create

CDialog オブジェクトを初期化します。モードレス ダイアログ ボックスを作成し、CDialog のオブジェクトにアタッチします。

CDialog::CreateIndirect

メモリ (がベース)、リソースのダイアログ ボックス テンプレートからモードレス ダイアログ ボックスを作成します。

CDialog::DoModal

されたときにモーダル ダイアログ ボックスを呼び出し、を返します。

CDialog::EndDialog

モーダル ダイアログ ボックスを閉じます。

CDialog::GetDefID

ダイアログ ボックスの既定のプッシュ ボタン コントロールの ID を取得します。

CDialog::GotoDlgCtrl

ダイアログ ボックスの指定したダイアログ ボックスのコントロールにフォーカスを移動します。

CDialog::InitModalIndirect

メモリ (がベース)、リソースのダイアログ ボックス テンプレートからモーダル ダイアログ ボックスを作成します。パラメーターは関数 DoModal が呼び出されるまで格納されます。

CDialog::MapDialogRect

四角形のダイアログ ボックス単位を単位を除外するに変換します。

CDialog::NextDlgCtrl

ダイアログ ボックスの次のダイアログ ボックスのコントロールにフォーカスを移動します。

CDialog::OnInitDialog

ダイアログ ボックスの初期化処理を拡張するためにオーバーライドします。

CDialog::OnSetFont

ダイアログ ボックス コントロールにテキストを描画するときに使用するのフォントを指定するためにオーバーライドします。

CDialog::PrevDlgCtrl

ダイアログ ボックスの前のダイアログ ボックスのコントロールにフォーカスを移動します。

CDialog::SetDefID

指定したプッシュ ボタンにダイアログ ボックスの既定のプッシュ ボタン コントロールを変更します。

CDialog::SetHelpID

ダイアログ ボックスの状況依存のヘルプの ID を設定します。

132s802t.collapse_all(ja-jp,VS.110).gifプロテクト メソッド

名前

説明

CDialog::OnCancel

[キャンセル]ボタンまたは Esc キー操作のためにオーバーライドします。既定値は DoModal のダイアログ ボックスを IDCANCELを閉じます。

CDialog::OnOK

モーダル ダイアログ ボックスの[OK]ボタンのアクションを実行します。既定値は DoModal のダイアログ ボックスを IDOKを閉じます。

解説

ダイアログ ボックスは、2 種類です: モーダルおよびモードレス。モーダル ダイアログ ボックスは、ユーザーによってアプリケーションが進む前に閉じる必要があります。モードレス ダイアログ ボックスは、ユーザーがダイアログ ボックスを表示し、ダイアログ ボックスをキャンセルしたりせずに、別のタスクに戻ることができます。

CDialog のオブジェクトはダイアログ テンプレートと CDialog派生クラスの組み合わせです。ダイアログ テンプレート リソースを作成し、に格納するためにダイアログ エディターを使用すると CDialogから派生したクラスを作成するには、クラス追加ウィザードを使用します。

ダイアログ ボックスは、他のウィンドウ、Windows からのメッセージを受信します。ダイアログ ボックスで、ダイアログ ボックスのコントロールからの通知メッセージをユーザーが、ダイアログ ボックスにやり取りするのか、後処理する場合に特に必要があります。選択するには、メッセージを処理したく、実際のクラスには、適切なメッセージ マップのエントリとメッセージ ハンドラー メンバー関数を追加するプロパティ ウィンドウを使用します。だけハンドラー メンバー関数のアプリケーション固有のコードを記述する必要があります。

必要に応じて、メッセージ マップのエントリを常に記述して、メンバーは、手動で機能します。

ただし、すべて単純なダイアログ ボックスで、ユーザーがダイアログ ボックスのコントロールに入力されたストアのデータまたはユーザーのデータを表示するダイアログは、派生クラスにメンバー変数を追加します。メンバー変数を作成し、コントロールに関連付けるために追加の変数のウィザードを使用できます。同時に、各変数の値変数の型と許容範囲を選択します。コード ウィザードは、ダイアログの派生クラスにメンバー変数を追加します。

マップ データが自動的にメンバー変数とダイアログ ボックスのコントロール間でのデータの交換を処理するために生成されます。データ マップは適切な値を設定してダイアログ ボックスのコントロールを初期化し、データを取得し、データを検証する関数を提供します。

モーダル ダイアログ ボックスを作成するには、スタックのオブジェクトをダイアログ、派生クラスのコンストラクターを使用して構築し、次にダイアログのウィンドウとコントロールを作成するに DoModal を呼び出します。モードレス ダイアログを作成する場合は、ダイアログ クラス コンストラクターの [作成] を呼び出します。

また Windows SDKに説明されているように DLGTEMPLATE のデータ構造を使用してメモリ テンプレートを作成できます。CDialog のオブジェクトを構築すると、モードレス ダイアログ ボックス、または呼び出し InitModalIndirectDoModal をモーダル ダイアログ ボックスを作成するために作成されるように CreateIndirect を呼び出します。

交換と検証のデータ マップで、新しいダイアログ クラスに追加 CWnd::DoDataExchange のオーバーライドで記述されます。交換と検証機能の詳細については DoDataExchange のメンバーが CWnd で関数"を参照してください。

プログラマの場合、フレームワークは両方 CWnd::UpdateDataの呼び出しによって DoDataExchange を間接的に呼び出します。

フレームワークは、モーダル ダイアログ ボックスを閉じるにユーザーが[OK]をクリックすると UpdateData を呼び出します。(データは[キャンセル]ボタンがクリックされた場合は取得されません)。OnInitDialog の既定の実装は、コントロールの初期値を設定するに UpdateData を呼び出します。通常、さらにコントロールを初期化するに OnInitDialog をオーバーライドします。OnInitDialog は、すべてのダイアログ コントロールが作成された後、ダイアログ ボックスが表示される直前に呼び出されます。

モーダルまたはモードレス ダイアログ ボックスの実行中に CWnd::UpdateData をいつでも呼び出すことができます。

ダイアログ ボックスを手動で作成する場合には、必要なメンバー変数を独自派生ダイアログ ボックス クラスに追加して、これらの値を設定または取得するためにメンバー関数を追加します。

モーダル ダイアログ ボックスは、ユーザーが[OK]または[キャンセル]ボタンを押すか、コードで EndDialog のメンバー関数を呼び出すときに自動的に閉じます。

モードレス ダイアログ ボックスを実装すると、OnCancel のメンバー関数を常にオーバーライドし、その中の DestroyWindow を呼び出します。ダイアログ ボックスを表示するが、を呼び出して、オブジェクトを破棄せず EndDialogをため、基本クラス CDialog::OnCancelを呼び出さないでください。モードレス ダイアログ ボックスは、通常 newに割り当てられるため、thisを削除するには、モードレス ダイアログ ボックスの PostNcDestroy をオーバーライドする必要があります。モーダル ダイアログ ボックスは、普通、フレームで構築され、PostNcDestroy のクリーンアップは必要ではありません。

CDialogの詳細については、" "を参照してください:

  • ダイアログ ボックス

  • サポート技術情報の文書 Q262954: " HOWTO: スクロール バーを持つ Resizeable のダイアログ ボックスを作成します。

継承階層

CObject

CCmdTarget

CWnd

CDialog

必要条件

ヘッダー: afxwin.h

参照

関連項目

CWnd クラス

階層図

概念

MFC DLGCBR32 サンプル

MFC DLGTEMPL サンプル