MFCのUpdateData()関数の使い方
MFCでは、UpdateData()関数は、UIコントロールの値を関連付けられた変数に、または変数の値をUIコントロールに更新するために使用されます。
UpdateData()関数の利用手順は次の通りです。
- 対応するダイアログクラス内で、UIコントロールを関連付けるための変数を宣言します。例えば、テキストボックスコントロールを関連付けるには、ダイアログクラスのヘッダーファイルにCString型の変数を宣言します。
CString m_strText;
- ダイアログリソースにて、この変数をUIコントロールに紐づける。例えば、コントロールのプロパティ、またはDDXメカニズムを通じて紐づけることができる。
- UIコントロールの値を更新する必要がある場合は、UpdateData(TRUE) 関数を実行します。たとえば、あるボタンのクリックイベントでは、次のコードで UI コントロールの値を更新できます。
void CMyDialog::OnButtonClicked()
{
// 将UI控件的值更新到关联的变量中
UpdateData(TRUE);
}
- UI コントロールの値を更新する必要がある時は、UpdateData(FALSE) 関数を呼び出します。例えば、特定の変数の値が変更されたら、次のコードで UI コントロールの値を更新できます。
void CMyDialog::OnVariableChanged()
{
// 将变量的值更新到UI控件中
UpdateData(FALSE);
}
コントロールタイプに応じてデータ型の変換を行なうため、UpdateData()関数は、データをコントロールの値に反映させる際に注意が必要である。このため、UpdateData()関数を用いる際には、コントロールのタイプがバインドする変数の型と一致していることを確認する必要がある。また、UpdateData()関数は、バインドされている変数の値が変更された場合にコントロールの値を更新するが、UpdateData()関数を呼び出す前にバインドする変数の値が適切に初期化されていることを確認する必要がある。