MFC中两个对话框之间数据传递
以下是在网上参考的一篇文章,网址:https://blog.csdn.net/foreverhuylee/article/details/21707197
这里有两种情况,
第一种情况是:
(在一个基于单文档的应用程序中,新建了两个对话框A和B,并且用两个独立的类和他们关联)
对话框A中有一个编辑框, 按下A中的一个按钮a后弹出对话框B,
B中也有一个编辑框b,
在B中输入数据 点击确定(ID0K)后 ,b中的数据能传到a,并且能显示出来
具体实现方法:
在A对话框的Button1按钮响应函数中,添加以下代码:
void DlgA::OnButton1()
{
// TODO: Add your control notification handler code here
DlgB dlgB; // 新建B对话框的对象
if (IDOK==dlgB.DoModal())
{
m_strA=dlgB.m_strB; // m_strA是a编辑框关联的变量,m_strB是b对话框关联的变量
}
UpdateData(FALSE);
}
在B对话框的“确定”ID号为(IDOK),函数中添加以下代码:
void DlgB::OnOK()
{
// TODO: Add extra validation here
GetDlgItem(IDC_EDIT1)->GetWindowText(m_strB); // 获取b对话框的值,保存在m_strB中
);
CDialog::OnOK();
}
第二种情况是:
(在一个基于单文档的应用程序中,新建了两个对话框A和B,并且用两个独立的类和他们关联)
在A对话框的a编辑框中输入数据,点击确定(IDOK)按钮,A对话框消失
打开B对话框,其中的b编辑框中能显示原来a中的数据
实现方法如下:
1.在程序的App类中,添加一个成员变量,它相当于整个程序的全局变量,所有的类都能用
float myFlow;
2.在A对话框的“确定”按钮中,输入一下代码:
void CInitial::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CEnvirMonibeta1App *pApp=(CEnvirMonibeta1App *)AfxGetApp( );
pApp->myFlow=m_Iflow; // m_Iflow 是a编辑框关联的变量
CDialog::OnOK();
}
3.在B对话框的OnPaint函数(这个函数需要自己添加WM_PAINT)中,添加如下代码:
CEnvirMonibeta1App *pApp=(CEnvirMonibeta1App *)AfxGetApp( );
m_flow=pApp->myFlow;
UpdateData(FALSE);
这个就能实现目标了~~
如果是父对话框和子对话框的传递,用下面的方法:
CParentDlg *parent=(CParentDlg*)GetParent();
parent->GetDlgItem()->SetWindowText()
追问
能稍稍解释下么。。。光两条语句看不懂啊、、
回答
CParetDlg对应你的A对话框类。
通过一个parent指针指向父对话框,然后就是获得B的内容,在A中显示
---------------------
作者:foreverhuylee
来源:CSDN
原文:https://blog.csdn.net/foreverhuylee/article/details/21707197
版权声明:本文为博主原创文章,转载请附上博文链接!
MFC中两个对话框之间数据传递的更多相关文章
- MVC中Control和View之间数据传递的方式
1:ViewBag和ViewData 具体区别不做讨论,本处只演示ViewData的具体示例: Controler代码:ViewData["Employee"] = emp; Vi ...
- 再谈MFC学习——模态对话框的数据传递
学习c++的目的就是为了使用封装好的类.而最最经典的封装类当然是微软的MFC窗体程序类. 学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想. 以下就看下我学习的MFC模态对话框的数据 ...
- intent,实现两个活动之间数据的传递
一.Intent 可以启动一个活动,也可以在启动活动的时候传递数据.intent中提供了putExtra()方法,它可以把我们想要传递的数据暂存在intent中,启动了另一个活动后,通过getInte ...
- 解析activity之间数据传递方法的详解
转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下 1 基于消息的通信机制 ...
- Android 在不同Actitity之间数据传递
本文实现一个简易的人品计算器来实践在不同Actitity之间数据传递 intent的数据传递 从A界面打开B界面 把A界面的数据传递给B界面 1. intent.setData(uri) -- int ...
- 在db2中 两个数据库之间的两个表的联合查询
大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码s ...
- JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)
作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...
- DOM的小练习,两个表格之间数据的移动
本次讲的是两个表格之间数据的移动,左边的表格移动到右边,并且左边表格移动内容消失. <head> <meta http-equiv="Content-Type" ...
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
随机推荐
- 一个简单的php分页逻辑
php分页 <?php include 'backend/conn.php'; $html = '<ul>'; //输出的html $pageDataNum=3; //每页显示10行 ...
- Scala隐式转换和隐式参数
隐式转换 Scala提供的隐式转换和隐式参数功能,是非常有特色的功能.是Java等编程语言所没有的功能.它可以允许你手动指定,将某种类型的对象转换成其他类型的对象或者是给一个类增加方法.通过这些功能, ...
- ECharts 图表设置标记的大小 symbolSize 和获取标记的值
ECharts 是百度出品,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) ...
- extern “C”
http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 问题:extern “C” 在C++环境下使用C函数的时候,常常 ...
- 【[TJOI2010]电影迷】
一度自闭 这道题一看就是最小割无疑 我们假设源点\(S\)表示看这个电影,汇点\(T\)表示不看这部电影 如果一个电影的价值为正,我们就从源点点连一条容量为\(val\)的边,表示割掉这个边也就是选择 ...
- 自定义ViewPagerIndicator-视图指示器
ViewPagerIndicator.java public class ViewPagerIndicator extends LinearLayout { private Paint mPaint; ...
- QTP基本方法3-----截屏
1.桌面截屏 Desktop.captureBitMap path[,bolean] path:保存路径,可选择绝对路径或相对路径 相对路径是保存在脚本保存的目录下编号最大的res目录下. bole ...
- rabbitmq关于guest用户登录失败解决方法
刚安装完rabbitmq,登录的时候出现了: login failed问题: 查看rabbitmq的文档,发现在3.3.1以后的版中,处于安全的考虑,guest这个默认的用户只能通过localhos ...
- Linux---关闭Elasticsearch进程,并重新启动
有时候,当我们启动elasticsearch之后, 经过很长一段时间没有操作, 自己已经忘了是否已经启动了elasticsearch, 这时候我们可以通过下面的方式验证是否启动,并重新启动: step ...
- mint-ui 企业微信PC端内置浏览器 Picker 无法滚动
处理 在主JS代码之上附加以下代码 : <script> if (~navigator.userAgent.toLowerCase().indexOf('windowswechat')) ...