MFC中的UpdateData()函数
当你使用了ClassWizard建立了控件和变量之间的联系后:
当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用 UpdateData(FALSE)
如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)
用处:主要控制ddx_data
把控件中的值和变量进行交换
比如你有个编辑框,输入了一些值,你的程序怎么得到呢;必须先调用这个(当然是在用了ddx的情况)
反之控件的成员变量中的值也可以通过该函数自动显示到控件里面,根据传进来的是true或者false
1.UpdateData(true)
用窗体上控件中的内容来更新和控件相关连的变量的值(只能更新value类型的变量)
例如:你在你的窗体中有一个Edit控件,为这个控件关联了CString类型的变量m_strName;
你在控件中添入内容之后,必须调用UpdateData(true);才能把你添入的内容传给m_strName这个变量
UpdateData(false)和上面的正好相反,还是以上面的Edit为例,当你在程序中改变了m_strName变量的内容的时候,如果你想让那个Edit也显示更新后的 m_strName,就必须调用UpdateData(false); 这样在你的Edit中才能显示更新完的变量的值!
2、
UpdateData(TRUE)是将控件的状态传给其关联的变量,当然你要为控件关联上变量才行。
UpdateData(FALSE)是将控件的关联变量的值传给控件并改变控件状态。
UpdateData刷新的是当前对话框。
UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。
3.edit控件,与控件关联的变量m_edit,
当程序执行,你在控件中输入数21,要把21传到 m_edit,UpdateData(true).
如果把m_edit修改,要传到控件UpdateData(false);
另外注意一点:
使用UpdateData()函数时,当前界面上所有绑定了的变量(即通过MFC ClassWizard给控件添加了对应的变量)都会被UpdateData(TRUE)更新成对应控件中的内容;
同样所有绑定了变量的控件中的内容也会 UpdateData(FALSE)更新成对应变量中的内容。
要接受用户的输入就true, 要输入结果给用户就flase
数据量不多的话,最好用SetDlgItemText()和GetDlgItemText()
重要补充:
GetWindowText()是获取控件当前内容(Caption或者the text within the control —for the control,具体可以查看MSDN)值,是对单个控件而言;
而UpdateData()是作用于整个CWnd的DDX数据交换机制之中的,是控件和数据的双向通道。
MFC中的UpdateData()函数相关推荐
- MFC中的消息处理函数
1.在Windows API编程中,直接在消息处理函数中编写WM_PAINT处理代码. 2.在MFC中,CFrameWnd的消息处理过程在哪里呢?MFC时如何将消息处理函数和窗口关联起来的. 在CFr ...
- MFC中关于虚函数的一些问题
这个是C++中虚函数以及多态性. 我们知道,如果派生类中重定义了基类中的虚函数,即使用基类的类型指针调用该函数,那么实际上连编的是派生类的函数.比如, class A { virtual void o ...
- MFC子线程中调用updatedata()函数报错解决方法
在XXXDlg.h顶部添加 #define WM_UPDATEDATA WM_USER+100 关联自定义消息,在XXXDlg.cpp中消息处理函数中添加 ON_MESSAGE(WM_UPDATEDA ...
- VC的MFC中重绘函数的使用总结(整理)
原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html 在刷新窗口时经常要调用重绘函数 MFC提供了三个函数用于窗口重绘 In ...
- MFC中 AfxBeginThread()的函数
函数原型: CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc,//指向工作的线程,不能为空 LPVOID pParam,//参数要传递到 ...
- MFC中的Create();函数
创建控件: enum{IDC_NAME=1009,IDC_NAME2=1008}; CWnd m_edit; //这个变量应该放在类中 void CAbo ...
- MFC中的InitInstance()函数应该怎样理解
https://zhidao.baidu.com/question/29097884.html
- 修改MFC中AfxMessageBox()函数的对话框标题
修改MFC中AfxMessageBox()函数的对话框标题 如何在MFC中修改AfxMessageBox()函数所弹出的对话框标题,步骤如下: 1.找到项目工程的资源视图,打开.rc资源文件下的Str ...
- MFC中的DoDataExchange(CDataExchange *pDX)
DoDataExchange(CDataExchange *pDX) 在对话框中有这么一个函数 其作用是与对应的变量交换对话框数据 MSDN 解释为: Called by the framework ...
最新文章
- muduo之FileUtil
- 量子计算时代快了!量子计算机的架构,硬件,软件等都有成果!
- 在html页面中加入矢量图,HTML5画布矢量图形?
- 如何在vmware虚拟机下挂载windows硬盘
- 深度学习pytorch--多层感知机(三)
- 深入理解JavaScript之Event Loop
- [css][移动设备]禁止横竖屏时内容自动调整
- IE、FireFox、Opera三种浏览器Document对象的方法对比
- 5G换机前夕变局:海外停滞,靠中国市场救命?
- 对于目标检测中mAP@0.5的理解
- 汽修第5天 升降玻璃的维修
- 腾讯音乐、网易云音乐殊途同归?
- 云测试(cloud testing)之我见
- 怎么把四个图片合成一个图片?
- 乘法逆元 java_java写的三个求乘法逆元的算法
- 使用TabLayout+ViewPager+Fragment实现切页展示
- 一篇文章,带你走进Java
- 基于Python的Excel读写操作--内容超详细,值得排排坐
- iPhone开发播放音乐与按钮声音
- Linux 系列(三)——Redis 分布式集群搭建
热门文章
- POJ1847【Dijkstra】
- 控制体积分形式的基本方程
- 细说OSI七层协议模型及OSI参考模型中的数据封装过程
- Educational Codeforces Round 112 (Rated for Div. 2)-A. PizzaForces-题解
- C语言 fprintf写入文件
- 前端开发App的几种开发方式
- getenforce setenforce
- 电脑蓝牙耳机默认声音过高的解决办法
- CIFAR-100数据集 卷积神经网络训练
- CMake error:System Error:No such file or directory CMake error:Could not open file for write in copy