以下是在网上参考的一篇文章,网址: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中两个对话框之间数据传递的更多相关文章

  1. MVC中Control和View之间数据传递的方式

    1:ViewBag和ViewData 具体区别不做讨论,本处只演示ViewData的具体示例: Controler代码:ViewData["Employee"] = emp; Vi ...

  2. 再谈MFC学习——模态对话框的数据传递

    学习c++的目的就是为了使用封装好的类.而最最经典的封装类当然是微软的MFC窗体程序类. 学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想. 以下就看下我学习的MFC模态对话框的数据 ...

  3. intent,实现两个活动之间数据的传递

    一.Intent 可以启动一个活动,也可以在启动活动的时候传递数据.intent中提供了putExtra()方法,它可以把我们想要传递的数据暂存在intent中,启动了另一个活动后,通过getInte ...

  4. 解析activity之间数据传递方法的详解

    转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下     1  基于消息的通信机制 ...

  5. Android 在不同Actitity之间数据传递

    本文实现一个简易的人品计算器来实践在不同Actitity之间数据传递 intent的数据传递 从A界面打开B界面 把A界面的数据传递给B界面 1. intent.setData(uri) -- int ...

  6. 在db2中 两个数据库之间的两个表的联合查询

    大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码s ...

  7. JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)

    作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...

  8. DOM的小练习,两个表格之间数据的移动

    本次讲的是两个表格之间数据的移动,左边的表格移动到右边,并且左边表格移动内容消失. <head>   <meta http-equiv="Content-Type" ...

  9. 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)

    1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

随机推荐

  1. 乘风破浪:LeetCode真题_014_Longest Common Prefix

    乘风破浪:LeetCode真题_014_Longest Common Prefix 一.前言 如何输出最长的共同前缀呢,在给定的字符串中,我们可以通过笨办法去遍历,直到其中某一个字符不相等了,这样就得 ...

  2. 解读ARM成功秘诀:薄利多销推广产品

    解读ARM成功秘诀:薄利多销推广产品 2013年07月04日 15:04   新浪科技 微博    我有话说(2人参与)   导语:美国电子杂志Slate周一发表署名 法哈德·曼约奥(Farhad M ...

  3. [COGS 0107][NOIP 2003] 传染病控制

    107. [NOIP2003] 传染病控制 ★★★   输入文件:epidemic.in   输出文件:epidemic.out   简单对比时间限制:1 s   内存限制:128 MB [问题背景] ...

  4. ecshop hash登录 + wordpress mysql盲注字段

    delete_cart_goods.php  post  id=a * sq_xfkjbd 暴库and(select 1 from(select count(*),concat((select (se ...

  5. Mac原生Terminal快速登录ssh

    1. 创建rsa key 在终端中输入以下命令: ssh-keygen -t rsa 完成之后可以在~/.ssh目录下找到公钥和私钥     如果你与我一样有使用gitlab,那么这个秘钥应该已经存在 ...

  6. 【[HNOI2012]矿场搭建】

    抄题解真开心 我真是越来越菜了 这是点双的板子题,于是求出所有点双,之后讨论 如果点双里之有一个割点,那么如果这个割点炸了,这个点双就出不去了,于是我们得在这个点双内部除了这个割点位置放一个 如果有两 ...

  7. xss练习平台及writeup

    今天玩了一天的xss. 分享几个xss game https://xss.haozi.me/#/0x00 http://47.94.13.75/test/  writeup:http://www.cn ...

  8. 20145314郑凯杰 《Java程序设计》第10周学习总结

    20145314郑凯杰 <Java程序设计>第10周学习总结 代码托管: 学习内容总结 网络编程 会打手机吗? 第一个问题:会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛 ...

  9. ServletContextListener在Springboot中的使用

    ServletContextListener是servlet容器中的一个API接口, 它用来监听ServletContext的生命周期,也就是相当于用来监听Web应用的生命周期.今天我们就来说说如何在 ...

  10. 新闻cms管理系统(三) ------菜单管理

    1.前期准备工作 (1)模板介绍 添加菜单的模板页面 菜单管理首页: 添加菜单页面: (2)公共类引入介绍 公共函数文件的引入(位置: Application/Admin/Controller/Com ...