这个函数我有几个不明白的地方,希望朋友们能回答仔细点,因为我比较苯1.UpdateData()是不是等价于UpdteData?
2.是不是在OnInitDialog()函数中会自动调用UpdateData(FALSE) 而不用自己写
3.是不是在OnOK()里会自动调用UpdateData(TRUE)
4.UpdateData()到底什么时候该用 FALSE 或 TRUE,比如我要计算2个数的和,肯定要
  用到这个函数,但是我不知道什么时候该用FALSE或TRUE

解决方案 »

  1.   

    第一个要问的是UpdateData()是不是等价与UpdateData(TRUE)?
      

  2.   

    函数原形:UpdateData(bool flag=true),当然你就可以知道UpdateData()就等同于UpdateData(true)
    UpdateData()是专门为控件映射变量服务:
    比如你在窗体里映射了一个编辑框:m_edit1(CString)
    为m_edit1赋值:m_edit1="1234";UpdateData(false);
    m_edit1为别的赋值(比如你定义了一个变量temp(CString):temp=m_edit1;UpdateData(true)
      

  3.   

    UpdateData() 默认参数 TRUE,
    所以 UpdateData() 就是 UpdateData(TRUE)UpdateData() 函数需要手动调用,
    运行 OnOK 不会自动调用 ...
      

  4.   

    UpdateData() 参数为 TRUE 表示从控件中取值到关联的变量,
    参数为 FALSE 表示把这个控件关联的变量更新显示到控件中。所以,
    运算数用 TRUE 取值,
    然后计算完成后,
    用 FALSE 更新显示结果
      

  5.   

    UpdateData(/*TRUE*/)是更新数据成员,比如在edit输入了一个数字,调用它就可以更新与这个控件关联的变量的值。UpdateData(FALSE)是由数据成员更新控件,比如手动更新了一个int型变量,调用这个函数就可以更新与这个int变量关联的控件,控件就显示最新的数值