博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC 中 UpdateData()用法
阅读量:4181 次
发布时间:2019-05-26

本文共 1153 字,大约阅读时间需要 3 分钟。

一、总结UpdateData()函数

UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。

UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。

       当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateData(TRUE)。

二、关于编辑框的赋值和取值

向编辑框中赋值和取值时:

1、建一个 控制型的变量,如m_edit1,用CWnd的SetWindowText() 和GetWindowText()来赋值和取值。

m_Edit1.SetWindowText("Hello");  

或者GetDlgItem(IDC_EDIT1)->SetWindowText(str);

2、建立一个控制型的变量,如m_edit1,用SetDlgItemText()和GetDlgItemText()来赋值和取值

CString Str="Hello":

m_edit1.SetDlgItemText(IDC_EDIT1,str);

2、直接建一个   数值形的变量   如m_strEdit;   用  UpdateData()来控制得到变量,还是更新变量。

//取值  

  UpdateData(TRUE);  
  CString   buf   =   m_Edit1;  
 
  //赋值  
  m_Edit1="ok!";  
  UpdateData(FALSE);

 

Ref:

 

补充:UpdateData() 的原理

執行 UpdateData() 這動作 用意是去呼叫 ::DoDataExchange(pDx) 這函示的

用 MFC 精靈產生專案時… 會產生類似如下之程式碼

 
1 void CDDXDemoDlg::DoDataExchange(CDataExchange* pDX)
2 {
3     CDialog::DoDataExchange(pDX);
4     DDX_Text(pDX, IDC_EDIT, num);
5     DDV_MinMaxInt(pDX, num, 1, 20);
6 }

其中 DDX_ 代表 -> Do Data Exchange

DDV_ 則代表了 -> Do Data Verification

 

所以執行 UpdateData(TRUE) 就代表了 IDC_EDIT -> num 的資料交換

UpdateData(FALSE) 即代表了 num -> IDC_EDIT 的資料交換動作…

且執行 UpdateData() 動作後會去作類似 DDV_MinMaxInt 的資料基本檢查。

 

Ref:

转载地址:http://kahai.baihongyu.com/

你可能感兴趣的文章
264编码器的DSP移植与优化
查看>>
计算G711语音的打包长度和RTP里timestamp(时间戳)的增长量
查看>>
H264码流打包成RTP包
查看>>
使用librtmp进行H264与AAC直播
查看>>
H.264 RTP Streaming
查看>>
H264实时编码及NALU,RTP传输(续)(ZZ)
查看>>
H.264 基础及 RTP 封包详解
查看>>
VS2015 编译live555源码
查看>>
VS2015下编译libeXosip2.5.0
查看>>
x264码率控制参数详解
查看>>
X264在VS2015环境下编译
查看>>
linphone-iphone最新源码编译
查看>>
解读x264_param_default 参数
查看>>
ios编译linphone 开启x264编译
查看>>
x264命令参数与代码对应关系
查看>>
关于编译x264时出现的for Cortex-A8 erratum because it has no mapping symbols问题
查看>>
M3U8格式讲解及实际应用分析
查看>>
流媒体开发之--HLS--M3U8解析(2): HLS草案
查看>>
CMake 手册详解(一)
查看>>
CMake 手册详解(二)
查看>>