当前位置:C++技术网 > 资讯 > UpdateData函数的断点调试深入理解

UpdateData函数的断点调试深入理解

更新时间:2015-11-19 22:41:40浏览次数:1+次

UpdateData() 是MFC的窗口函数,用来刷新数据的。
总的来说:操作系统会调用这个函数来初始化对话框中的数据,或者检索或者验证对话框中的数据。
简单说就是:如果Updatedata(TRUE) == 将控件的值赋值给成员变量;Updatedata(FALSE) == 将成员变量的值赋值给控件。
UpdateData() 是MFC的窗口函数,用来刷新数据的。
总的来说:操作系统会调用这个函数来初始化对话框中的数据,或者检索或者验证对话框中的数据。

我们断点调试,实例理解UpdateData。

这是我在《得到电脑磁盘的空间大小》中的代码实现结果,下面我们更改下代码,将UpdateData(false)改为UpdateData(),看看代码运行图:


程序代码运行到UpdateData时,三个变量并没有分配值,继续断点:


我们发现nfreesize有值了!继续断点:


程序代码运行到最后时,三个变量都成功赋值了,那么最后得运行结果呢?


我们看到并没有执行成功,这是为什么?因为我们已经执行完程序之后,所有与控件相关联的变量都赋值了,可是我们并没有将变量值更新到对话框控件中。因此我们将updatedata()改为updatedata(false),将变量值更新到对话框控件!