CDialog

CDialogクラスは、画面にダイアログ ボックスを表示するための基本クラスです。ダイアログ ボックスの 2 種類あります: モーダルおよびモードレス。アプリケーションを続行する前に、モーダル ダイアログ ボックスを閉じる必要があります。モードレス ダイアログ ボックス] ダイアログ ボックスを表示し、キャンセルまたはダイアログ ボックスを削除せずに別のタスクを返す、ユーザーことができます。

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

ダイアログ ボックスは、他のウィンドウのように Windows からメッセージを受信します。ダイアログ ボックスは、ユーザーがダイアログ ボックスで対話する方法はダイアログ ボックスのコントロールからの通知メッセージの処理に特に興味があります。ClassWizard をダイアログ ボックス内の各コントロールによって生成される可能性のあるメッセージを参照し、処理するメッセージを選択することができます。ClassWizard [、適切なメッセージ マップ エントリとメッセージ ハンドラー メンバー関数、新しいクラスに追加をします。のみ、ハンドラーのメンバー関数でアプリケーション固有のコードを記述する必要があります。

必要に応じて、あなたは常にメッセージ マップ エントリとメンバー関数自分で ClassWizard を使用しての代わりに書くことができます。

すべての最も単純なダイアログ ボックスが、メンバー変数を派生ダイアログ クラス] ダイアログ ボックスのコントロールで、ユーザーが入力したデータを格納する、またはユーザーのデータを表示するには追加します。ClassWizard これらのコントロールをデータにマップすることができますダイアログ ボックスを参照し、各コントロールのメンバー変数を作成するよう求められます。同時に、変数の型と各変数の値の許容範囲を選択します。ClassWizard を派生ダイアログ クラスにメンバー変数を追加します。

ClassWizard、メンバー変数と、ダイアログ ボックスのコントロール間でデータの交換を自動的に処理するには、データ マップを書き込みます。データのマップ] ダイアログ ボックスで、適切な値を持つコントロールを初期化、データを取得し、データを検証する機能を提供します。

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

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

ClassWizard ClassWizard を新しいダイアログ クラスに追加されますCWnd::DoDataExchangeのオーバーライドの交換と検証データ マップを書き込みます。については、exchange と検証機能のCWndDoDataExchangeメンバー関数を参照してください。

プログラマとフレームワークの両方DoDataExchange直接:updatedataを呼び出さない。

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

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

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

ClassWizard の詳細についてを参照してください ClassWizard を使用してVisual の C++ プログラマのガイド

アプリケーションでダイアログ ボックスの背景色を設定するには、 CWinApp::SetDialogBkColorを呼び出す。

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

モードレス ダイアログ ボックスを実装する場合は、常にOnCancelメンバー関数をオーバーライドし、 DestroyWindowからそれを呼び出します。ダイアログ ボックスを非表示にするが、それを破壊しないEndDialog、呼び出すため、基本クラスのCDialog::OnCancelを呼び出すことはありません。モードレス ダイアログ ボックスは、通常新しいで割り当てられているので、この削除のためにモードレス ダイアログ ボックスのPostNcDestroyをオーバーライドすることも必要があります。モーダル ダイアログ ボックスは通常、フレームを構築されている、 PostNcDestroyクリーンアップが必要はありません。

CDialogの詳細については、参照してください ] ダイアログ ボックスのトピック Visual の C++ プログラマのガイド

#include lt;afxwin.h>

クラス メンバーの |nbsp;基本クラス|階層図(&N)

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index