UpdateData()用法
一、总结UpdateData()函数
UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。
当使用ClassWizard建立控件和变量之间的联系后:当修改了变量的值,而希望对话框控件更新显示,在修改变量后调用UpdateData(FALSE);
当希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。
void CCharStatisticDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCharStatisticDlg) DDX_Text(pDX, IDC_EDIT1, m_strTxt); DDX_Text(pDX, IDC_CH, m_strCh); DDX_Text(pDX, IDC_EN, m_strEn); DDX_Text(pDX, IDC_AL, m_strTotal); //}}AFX_DATA_MAP }
二、关于编辑框的赋值和取值
向编辑框中赋值和取值时:
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);
关联控制型变量时,会在DoDataExchange中,使用DDX_Control(pDX,IDC_EDIT,m_edit1);进行关联
2、直接建一个数值形的变量如m_strEdit; 用 UpdateData()来控制得到变量,还是更新变量。
关联CString变量的话,会在对话框类的构造函数中,进行初始化,在DoDataExchange中,通过DDX_Text(pDX,IDC_EDIT,m_EditText),进行对象的绑定。
//取值
UpdateData(TRUE);
CString buf = m_Edit1;
//赋值
m_Edit1="ok!";
UpdateData(FALSE);