您的位置:首页 > 其它

什么时间调用 UpdateData() --MFC函数

2009-09-23 23:30 267 查看
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)必须在窗口初始化完毕之后方可调用,否则由于系统资源未初始化完毕也将导致错误.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: