UpdateData,顾名思义,是用来刷新数据的。
1. Updatedata(TRUE):将控件的值赋值给成员变量,即用窗体上控件中的内容来更新和控件相关联的变量的值(只能更新value类型的变量)。
2. Updatedata(FALSE):将成员变量的值赋值给控件,和上面的正好相反。
3. 当你使用了ClassWizard建立了控件和变量之间的联系后,当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。
说明
1. UpdateData()刷新的是当前对话框。
2. 使用UpdateData()函数时,当前界面上所有绑定了的变量(即通过MFC的ClassWizard给控件添加的变量)都会被UpdateData(TRUE)更新成对应控件中的内容;同样所有绑定了变量的控件中的内容也会被UpdateData(FALSE)更新成对应变量中的内容。
3. 数据量不多的话,最好用SetDlgItemText()和GetDlgItemText()。
关于编辑框的赋值和取值
向编辑框中赋值和取值时:
1、建一个 控制型的变量,如m_edit1,用CWnd的SetWindowText()和GetWindowText()来赋值和取值。
m_Edit1.SetWindowText("Hello");
或者GetDlgItem(IDC_EDIT1)->SetWindowText(str);
2、建立一个控制型的变量,如m_edit1,用SetDlgItemText()和GetDlgItemText()来赋值和取值
CString Str="Hello":
m_edit1.SetDlgItemText(IDC_EDIT1,str);
3、直接建一个 数值形的变量 如m_strEdit; 用 UpdateData()来控制得到变量,还是更新变量。
//取值
UpdateData(TRUE);
CString buf = m_Edit1;
//赋值
m_Edit1="ok!";
UpdateData(FALSE);