MFC对话框工程添加变量

MFC添加成员变量的三种情况:

(1)添加一个普通成员变量


(2)给MFC一个控件关联一个值变量,以EDIT控件为例说明:

(3)给MFC控件关联一个控件变量,以EDIT控件为例说明:



总结:

CEDIT类型的要设置其界面显示只能是字符型。举例:m_edit.SetWindowText(L"DDD");


下面转载自http://www.jizhuomi.com/software/153.html

 对话框类的数据交换和检验

       在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫做对话框数据交换检验机制

      针对上面第二种情况, 我们以三个编辑框添加了变量m_test,在×××Dlg.cpp中C×××Dlg的DoDataExchange()函数的函数体中多了一条DDX_Text调用语句。下面是函数体代码和添加的注释。

C++代码
  1. void C×××Dlg::DoDataExchange(CDataExchange* pDX)   
  2. {   
  3.     // 处理MFC默认的数据交换   
  4.     CDialogEx::DoDataExchange(pDX);   
  5.     // 处理控件IDC_TEST_EDIT和变量m_test之间的数据交换   
  6.     DDX_Text(pDX, IDC_SUMMAND_EDIT, m_editSummand);   
  7. }  

       我们再以上述程序为例简单说下数据交换机制。如果我们在程序运行界面的EDIT控件中输入数据,则通过C×××的DoDataExchange()函数可以将输入的值保存到m_test变量中,反之如果程序运行中修改了变量m_test的值,则通过C×××的DoDataExchange()函数也可以将新的变量值显示到该编辑框中。

       但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。

       CDialogEx::UpdateData()函数的原型为:

       BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

       参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。

       返回值:CDialogEx::UpdateData()函数的返回值表示操作是否成功,成功则返回TRUE,否则返回FALSE。


举例:http://download.youkuaiyun.com/detail/xiaxiaojing/8397931  详细见源码

第一步:


第二步:点击 控件到变量 按钮,查看VS监视窗口


第三步:


第四步:点击“变量到控件”按钮,只有经过UpdateData(FALSE),变量的值才会传给控件并在界面显示出来。




其他加法器代码,注意观察UpdateData的使用。





评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值