以下是在网上参考的一篇文章,网址: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. JavaScript的DOM_操作行内样式

    一.检测浏览器是否支持css CSS 作为(X)HTML 的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的 CSS 能力.CSS 的能力和 DOM 级别密切相关,所以我们有必要检测当前浏 ...

  2. 二值形态学——腐蚀与膨胀 及 C语言代码实现

    参考文献:数字图像处理(第三版) 何东健 西安电子科技大学出版社 二值形态学中的运算对象是集合, 但实际运算中, 当涉及两个集合时并不把它们看作是互相对等的. 一般设A为图像集合, S为结构元素, 数 ...

  3. struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别(转)

    FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.! StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatc ...

  4. BZOJ3781:小B的询问(莫队)

    Description 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L ...

  5. [CQOI2017]小Q的表格

    题目 神仙题,神仙题 这是一道很适合盯着发呆的题目 看到这个规律 \[ f(a,b)=f(b,a) \] \[ b\times f(a,a+b)=(a+b)\times f(a,b) \] 这也没什么 ...

  6. 使用plugins让打包更便捷

    之前运行dist下的js,都是手动把index.html拷贝过去的,每次把dist文件夹删除,都需要将index.html拷贝进去,这样很麻烦,我们在webpack官方插件中找到HtmlWebpack ...

  7. ssti记录

    先看个python沙箱: #!/usr/bin/env python from __future__ import print_function print("Welcome to my P ...

  8. 《Python核心编程》第二版第三章答案

    本人python新手,答案自己做的,如果有问题,欢迎大家评论和讨论! 更新会在本随笔中直接更新. 我在Windows使用python版本是2.7.0 3–10. 异常.使用类似readTextFile ...

  9. 为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?

    项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布: 结果发布后生成的是一个dll文件...为不是一个exe的可执行文件: 后来了解到.NET Core的项目分 ...

  10. G1 GC日志:Application time: 0.8766273 seconds

    启动日志一直循环: 1.159: Application time: 0.8766273 seconds 1.160: Total time for which application threads ...