[每日一学]MFC学习笔记——简单计算器(二)

16 篇文章 2 订阅
8 篇文章 1 订阅

简要

上篇的文章里简要说了一下使用 Win32 API 函数 GetDlgItemInt 来获得编辑框中的输入数值,本篇文章中将使用MFC中 交换和验证机制 也叫做 DDX 。

下载

正文

新建一个工程

取名为 MyThirdPro ,使得界面和 上篇的文章基本一样。见图:

添加DDX

具体方法可见下图过程:
使用同样的方法完成 编辑框1 编辑框3 变量绑定。

检查代码

在完成之后会发现在工程CXXXDlg.h CXXXDlg.cpp 会被修改。

具体修改的代码可以看到,如下图所示:



关于DDX 的讲法我在这里找到了我个人认为一篇不错的文章,在这里就引用一下:MFC的DDX和DDV技巧._jianglm_新浪博客

在他的博客中写的比较好的有:

DDX将数据成员变量同对话类模板内的控件相连接,这么就使得数据在控件之间很轻率地传输。

UpdateData(FALSE)   数据由控件相干的成员变量向控件传输

UpdateData(TRUE)或参数为空  数据从控件向相干联的成员变量复制。

添加代码
这次使用的是编辑框的被改变事件 。具体的添加步骤如下图所示:



添加代码

	UpdateData(TRUE);
	m_iEdit3 = m_iEdit1 * m_iEdit2;
	UpdateData(FALSE);

以同样的方法添加 编辑框2 的   编辑框的被改变事件 。UpdateData 函数详解请见:   http://baike.baidu.com/view/1219734.htm
整体代码为:
void CMyThirdProDlg::OnEnChangeEdit1()
{
	UpdateData(TRUE);
	m_iEdit3 = m_iEdit1 * m_iEdit2;
	UpdateData(FALSE);
}
void CMyThirdProDlg::OnEnChangeEdit2()
{
	UpdateData(TRUE);
	m_iEdit3 = m_iEdit1 * m_iEdit2;
	UpdateData(FALSE);
}

编译运行

思考与反思

当在 添加DDX 的时候,在选择“变量类型”的时候,本篇所选择的是int,在那个时候是不是可以选择其他的选择呢?如果选择了会有什么样的结果呢?



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值