[每日一学]MFC学习笔记——简单计算器(二)
2012-10-27 22:41
190 查看
简要
在上篇的文章里简要说了一下使用 Win32API 函数 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,在那个时候是不是可以选择其他的选择呢?如果选择了会有什么样的结果呢?相关文章推荐
- [每日一学]MFC学习笔记——简单计算器
- [每日一学]MFC学习笔记——Hello World
- [每日一学]MFC学习笔记——读取文本文档
- [每日一学]MFC学习笔记——多窗口之间的通信
- [每日一学]MFC学习笔记——自定义消息的使用
- [每日一学]MFC学习笔记——线程中控制窗口内容
- [每日一学]MFC学习笔记——退出出现提示
- MFC 学习笔记 1 程序入口主函数的处理
- MFC学习笔记之二----------MFC框架程序及消息映射
- 每日学习笔记(16)
- 每日学习笔记(23)
- MFC学习笔记 对象的构造和析构及对象的四种生存方式
- MFC学习笔记之四————菜单编程与windows消息分类
- 孙鑫VC学习笔记:第十五讲 (四) 编写一个基于MFC对话框的聊天程序
- MFC学习笔记之七————工具栏编程与状态栏编程
- MFC学习笔记之坐标系
- [MFC学习笔记]--网络编程理论知识
- MFC学习笔记
- VC MFC学习笔记——学习方法
- VS2013MFC对话框工程学习笔记一 - 新建MFC对话框项目