次の方法で共有


コード ウィザードを使用した、コントロールへのタイプ セーフ アクセス

更新 : 2007 年 11 月

ダイアログ データ エクスチェンジ (DDX: Dialog Data Exchange) の機能に慣れている場合は、メンバ変数の追加ウィザード で Control プロパティを使用してタイプ セーフ アクセスを作成できます。この方法は、コード ウィザードを使用しないでコントロールを作成するよりも簡単です。

単純にコントロールの値にアクセスするだけの場合は、DDX を使用してください。コントロールの値でアクセス以外の操作をする必要がある場合は、メンバ変数の追加ウィザードを使用して、適切なクラスのメンバ変数をダイアログ クラスに追加します。このメンバ変数は、Control プロパティに結び付けます。

メンバ変数では、Value プロパティの代わりに Control プロパティを使用できます。Value プロパティは、コントロールから返されるデータの型 (CString や int など) を表します。Control プロパティは、型が MFC のコントロール クラスの 1 つ (CButtonCEdit など) であるデータ メンバを通じてコントロールに直接アクセスできます。

xwwb83fe.alert_note(ja-jp,VS.90).gifメモ :

特定のコントロールでは、必要に応じて Value プロパティを使用する複数のメンバ変数を設定できますが、Control プロパティを使用するメンバ変数は 1 つしか設定できません。コントロールに割り当てることができるのは 1 つの MFC オブジェクトだけです。なぜなら、コントロールやほかのウィンドウに複数のオブジェクトがアタッチされると、メッセージ マップが不明確になるためです。

このオブジェクトを使用すると、コントロール オブジェクトのどのメンバ関数でも呼び出すことができます。このような呼び出しは、ダイアログ ボックスのコントロールに影響します。たとえば、CButton 型の変数 m_Checkbox で表されるチェック ボックス コントロールの場合は、次のように呼び出すことができます。

m_Checkbox.SetCheck(BST_CHECKED);

このメンバ変数 m_Checkbox は、「コード ウィザードを使用しない、コントロールへのタイプ セーフ アクセス」で示されている GetMyCheckbox メンバ関数と同じ役割を果たします。自動チェック ボックスではない場合は、ボタンがクリックされたときの BN_CLICKED コントロール通知メッセージを処理するハンドラがダイアログ クラスで必要となります。

コントロールの詳細については、「コントロール」を参照してください。

参照

概念

ダイアログ ボックスのコントロールへのタイプ セーフ アクセス

ダイアログ ボックスの有効期間

コード ウィザードを使用しない、コントロールへのタイプ セーフ アクセス