控件变量和程序成员变量是如何交换数据的?

Q:控件变量和程序成员变量是如何交换数据的?

A:在MFC中针对对话框的数据交换和验证提供了DDX(用于交换)和DDV(用于验证)机制来完成这些任务。

如果使用DDX机制,通常在OnInitDialog函数或者对话框构造函数中,设置对话框对象的成员变量值。在对话框将要显示的前一刻,框架的DDX机制立即将成员变量值传输到对话框的控件中,而当用DoModal(创建Mode对话框)或者Create(创建Modeless对话框)创建对话框并显示时,即可看到那些控件值。对话框成员函数OnInitDialog缺省实现是:调用CWnd的成员函数UpdateData(FALSE)以初始化对话框的控件。

当用户单击了“确定”按钮时,或者在任何时候以参数TRUE调用UpdateData时,DDX机制就会把数据从控件传输到成员变量中。此时,DDV机制按照事先指定的验证规则对传输的数据进行验证。

控制的种类很多,每一种的交换方法都不一样,如CEdit是GetWindowText()和SetWindowText(),而CButton等的处理方法就更复杂了,好在MFC帮了你的忙。

GetWindowText()是获取控件当前内容(Caption或者the text within the control —for the control,具体可以查看MSDN)值,是对单个控件而言;   
UpdateData()作用于整个CWnd的DDX数据交换机制之中的,是控件和数据的双向通道。

 

control ID就是一个标识啊,标识你的这个控件用的,如果你要获取一个控件,你就可以用getdlgitem(idnumber)来获取。
member是一个关联变量而已,用时不要获取id号,直接用变量调用内部函数就行了。比如说你要求两个控件里面输入的数字的和。下面两种方式来求
sum=getdlgitemint(idone)+getdlgitemint(idtwo);//idone idtwo为两控件的id号。
sum=one+two; //one two为你关联的两个控件变量

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值