什么时间调用 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)必须在窗口初始化完毕之后方可调用,否则由于系统资源未初始化完毕也将导致错误.

posted @ 2009-09-23 23:30  dzqabc  阅读(995)  评论(0编辑  收藏  举报