「MFCコントロール - コントロールの更新」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == CWnd::UpdateData関数は、DDX/DDVサポートで値を更新するときに使う。 コントロールに入力された値を変数に格納する時に…」) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
CWnd::UpdateData関数は、DDX/DDVサポートで値を更新するときに使う。 | CWnd::UpdateData関数は、DDX/DDVサポートで値を更新するときに使う。<br> | ||
<br> | |||
コントロールに入力された値を変数に格納する時に、UpdateData(TRUE)またはUpdateData()を呼ぶ。 | コントロールに入力された値を変数に格納する時に、UpdateData(TRUE)またはUpdateData()を呼ぶ。<br> | ||
変数に格納された値をコントロールに反映する時は、UpdateData(FALSE)を呼ぶ。 | 変数に格納された値をコントロールに反映する時は、UpdateData(FALSE)を呼ぶ。<br> | ||
<br><br> | <br><br> | ||
2019年10月28日 (月) 22:00時点における版
概要
CWnd::UpdateData関数は、DDX/DDVサポートで値を更新するときに使う。
コントロールに入力された値を変数に格納する時に、UpdateData(TRUE)またはUpdateData()を呼ぶ。
変数に格納された値をコントロールに反映する時は、UpdateData(FALSE)を呼ぶ。
サンプルコード
CMyDialog.h
CString m_xvEdit1;
CString m_xvEdit2;
CMyDialog.cpp
CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/) : CDialog(CWndDlg::IDD, pParent), m_xvEdit1(_T("")), m_xvEdit2(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_xvEdit1);
DDX_Text(pDX, IDC_EDIT2, m_xvEdit2);
}
void CMyDialog::OnBnClickedButton()
{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
UpdateData(); // UpdateData(TRUE)でDDX変数を更新
m_xvEdit2 = m_xvEdit1; // m_xvEdit1の内容をm_xvEdit2に代入
UpdateData(FALSE); // UpdateData(FALSE)でDDX変数の内容をコントロールに反映
}
まず、ボタンを押下したとき、UpdateData()でIDC_EDIT1に入力された文字列をm_xvEdit1に格納される。
次に、m_xvEdit1をm_xvEdit2に代入する。
最後に、UpdateData(FALSE)でm_xvEdit2の文字列をIDC_EDIT2に反映させる。
IDC_EDIT1にABCDEを入力し、Button1を押すと、IDC_EDIT2に反映される。
IDC_EDIT1にXYZを入力し、Button1を押すと、IDC_EDIT2に反映される。