次の方法で共有


CWnd::DoDataExchange

更新 : 2007 年 11 月

ダイアログ データの交換と有効性チェックのためにフレームワークが呼び出します。

virtual void DoDataExchange(
   CDataExchange* pDX 
);

パラメータ

  • pDX
    CDataExchange オブジェクトへのポインタ。

解説

この関数は直接呼び出さないでください。この関数は UpdateData メンバ関数から呼び出されます。ダイアログ ボックスのコントロールを初期化する、またはダイアログ ボックスからデータを取得するには UpdateData を呼び出してください。

CDialog クラスからアプリケーション固有のクラスを派生したとき、この関数をオーバーライドすると、フレームワークの自動的なデータ交換および有効性チェックを利用できます。Add Variable ウィザードは、このメンバ関数のオーバーライドしたバージョンを書き込みます。オーバーライドされたメンバ関数には、DDX (ダイアログ データ エクスチェンジ) および DDV (ダイアログ データ バリデーション) のグローバル関数呼び出しの "データ マップ" が含まれます。

このメンバ関数のオーバーライド バージョンを自動的に生成するためには、まずダイアログ エディタを使ってダイアログ リソースを作成します。それから、アプリケーション固有のダイアログ クラスを派生します。さらに Add Variable ウィザードを使用して、変数、データ、正当性チックの範囲を新しいダイアログ ボックスの各種コントロールに関連付けます。次に、Add Variable ウィザードは、オーバーライドされた DoDataExchange を書き込みます。DoDataExchange には、データ マップが含まれています。Add Variable ウィザードが生成する DDX/DDV のコード ブロックの例を次に示します。

void CPenWidthsDlg::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);
   DDX_Text(pDX, IDC_THINPENWIDTH, m_nThinWidth);
    DDV_MinMaxInt(pDX, m_nThinWidth, 1, 20);
   DDX_Text(pDX, IDC_THICKPENWIDTH, m_nThickWidth);
   DDV_MinMaxInt(pDX, m_nThickWidth, 1, 20);
}

オーバーライドされた DoDataExchange メンバ関数は、ソース ファイルでマクロ ステートメントよりも先に来る必要があります。

ダイアログ データ エクスチェンジおよびダイアログ データ バリデーションに関する詳細については、「フォームでのデータの表示と操作」および「ダイアログ データ エクスチェンジとダイアログ データ バリデーション」を参照してください。Add Variable ウィザードで生成される DDX_ マクロおよび DDV_ マクロの説明については、「テクニカル ノート 26: DDX ルーチンおよび DDV ルーチン」を参照してください。

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

CWnd::UpdateData

その他の技術情報

CWnd のメンバ