什么时间调用 UpdateData() --MFC函数
UpdateData,顾名思义,是用来刷新数据的。
UpdateData(TRUE) -- 刷新控件的值到对应的变量
UpdateData(FALSE) -- 拷贝变量值到控件显示
例如,窗口中用 DDX_Text(pDX, IDC_EDIT1,
m_usercode);
将IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用
UpdateData(FALSE);反之在IDC_EDIT1的oneditchanged()中需要加入UpdateData(TRUE);
简单的说,如果Updatedata(TRUE) == 将控件的值赋值给成员变量;
Updatedata(FALSE) == 将成员变量的值赋值给控件;
//////////////////////////////////////
如果你为控件分配了变量
UpdateData(true)
是使用户输入的数据能够反映到变量上
在函数调用之后变量才被赋值
UpdateData(false)
是当你给控件对应的变量赋过值之后,在控件上体现出来
在函数调用之前,控件的值是不会随变量变化的
在VC里,可以为对话框上的控件设置对应的变量,如文本框可以设置对应的CString变量,但是在程序中修改文本框的内容时,对应的CString变量不会随着改变,需要调用UpdateData(TRUE)来改变变量。类似的,程序中改变了CString变量,也需要调用UpdateData(FALSE)也改变文本框的内容。
亲自试了一下,将文本框与CString变量关联时,CString变量并不能一直保持与空间实际内容同步,而且UpdateData(false)必须在窗口初始化完毕之后方可调用,否则由于系统资源未初始化完毕也将导致错误.