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

简要

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

下载

Demo下载: http://download.csdn.net/detail/kingsollyu/4694310

正文

新建一个工程

取名为 MyThirdPro ,使得界面和 上篇的文章基本一样。见图:
[每日一学]MFC学习笔记——简单计算器(二)_第1张图片

添加DDX

具体方法可见下图过程:
[每日一学]MFC学习笔记——简单计算器(二)_第2张图片
使用同样的方法完成 编辑框1 编辑框3 变量绑定。

检查代码

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

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



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

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

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

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

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

添加代码

这次使用的是编辑框的被改变事件 。具体的添加步骤如下图所示:
[每日一学]MFC学习笔记——简单计算器(二)_第3张图片
[每日一学]MFC学习笔记——简单计算器(二)_第4张图片
[每日一学]MFC学习笔记——简单计算器(二)_第5张图片

添加代码


	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);
}

编译运行

[每日一学]MFC学习笔记——简单计算器(二)_第6张图片

思考与反思

当在 添加DDX 的时候,在选择“变量类型”的时候,本篇所选择的是int,在那个时候是不是可以选择其他的选择呢?如果选择了会有什么样的结果呢?
[每日一学]MFC学习笔记——简单计算器(二)_第7张图片



你可能感兴趣的:([每日一学]MFC学习笔记——简单计算器(二))