以下是在网上参考的一篇文章,网址: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. 沉淀再出发:java的文件读写

    沉淀再出发:java的文件读写 一.前言 对于java的文件读写是我们必须使用的一项基本技能,因此了解其中的原理,字节流和字符流的本质有着重要的意义. 二.java中的I/O操作 2.1.文件读写的本 ...

  2. 沉淀,再出发:jQuery的初步了解和入门

    沉淀,再出发:jQuery的初步了解和入门 一.前言     对于后端开发者来说,是不是真的不需要了解前端的开发经过和相关技术,从我个人的角度来说,我觉得如果不了解或者接触很少,极有可能造成开发的时候 ...

  3. August 02nd 2017 Week 31st Wednesday

    Love means never having to say you are sorry. 爱就是永远不必说对不起. If there is ture love, you will never do ...

  4. Android Volley源码分析及扩展

    转载请标明出处: http://www.cnblogs.com/why168888/p/6681232.html 本文出自:[Edwin博客园] Volley 介绍 Android系统中主要提供了两种 ...

  5. TCP握手建立与释放连接

    网络层次模型 TCP/UDP区别 UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认.虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较 ...

  6. 安装chrome jsonView插件

    1.打开 https://github.com : 2.搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview: ...

  7. Cloudera Manager大数据集群环境搭建

    笔者安装CDH集群是参照官方文档:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_ ...

  8. 死磕salt系列-salt API 使用

    启用salt-api 服务 这里简单的说明下,SaltStack官方支持三种REST API,分别是rest_cherry; rest_tonado和rest_wsgi, 本文选择使用rest_che ...

  9. python 打包文件

    tarfile import tarfile tar = tarfile.open("sk_camera_6018.tar","w") tar.add(full ...

  10. 数论——算数基本定理 - HDU 4497 GCD and LCM

    GCD and LCM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...