您的位置:首页 > 其它

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

2012-10-27 22:41 190 查看

简要

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



下载

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


正文

新建一个工程

取名为 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,在那个时候是不是可以选择其他的选择呢?如果选择了会有什么样的结果呢?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: