UpdateData()函数的使用

来源:互联网 发布:linux java.tar.gz 编辑:程序博客网 时间:2024/05/16 19:57

    函数的原型:BOOL UpdateData( BOOL bSaveAndValidate = TRUE );

    UpdateData() 是MFC的窗口函数,用来刷新数据的。

    UpdateData()参数只有一个,默认为TRUE。 

    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) == 将成员变量的值赋值给控件,将数据从窗口显示。
 实例说明:
 例如我们在对话框窗口中添加了3个editbox,然后将前两个的值相加,然后在第三个editbox中输出。
 那么我们可以做如下处理:
 1。用类向导在3个editbox下添加3个变量,我们命名为m_num1,m_num2,m_num3。
 2。然后我们可以多添加一个button控件,在其的click处理事件中,添加以下代码:
 UpdateData();// 默认的缺省参数为TRUE,这样,将EditBox控件的内容读入到与其关联的变量中
 m_num3 = m_num1+m_num2;
 UpdateData(FALSE);// 将变量的值,输出到与其关联的EditBox中
 就可以了

以上引自:http://baike.baidu.com/view/1219734.htm

在一个对话框中要调用另外一个对话框时,比如打开一个按钮,出来一个键盘的对话框,当输入数据后,这时就要调用一下UpdateData(FALSE),从而将输入的数据在主对话框上显示出来。

void Number::OnButton1() 
{

CKey dlg;
if(dlg.DoModal()==IDOK)                                    
{
if(dlg.m_Display>=1 &&  dlg.m_Display<=99999)
m_number=dlg.m_Display;
else
MessageBox("请输入范围在1-99999整数之间!");
}
UpdateData(false);/

}