以下是在网上参考的一篇文章,网址: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. nginx+php+swoole安装记录

    领了台阿里服务器1vCPU 1G,做下测试研究. 系统 centos7,使用yum安装. Nginx yum install nginx ##开启nginx service nginx start 安 ...

  2. PHP根据图片制作缩略图

    php中制作缩略图的方法也很简单,是用imagecopyresampled方法根据源图制作一个小一点的图片,来看代码check_image_addthumbs.php <?php //修改图片效 ...

  3. idea 2018激活注册码

    我使用的方法和pycharm激活类似,激活码不同而已pycharm激活步骤链接:可以新建标签打开https://www.cnblogs.com/-nbloser/p/8570648.html idea ...

  4. Vue-Router基础使用

    作为Vue生态系统里面的一大成员,Vue-Router主要负责vue中的页面路由及其传值问题. 1.基本使用–添加路由 基本使用主要包括四个部分,页面引入.配置路由数组.实例化路由.把实例化的路由加入 ...

  5. 【JavaScript】插件参数的写法

    就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...

  6. VIM在Win7上的安装教程

    1.下载 目前VIM在其官网上的最新版本为7.4,Windows版本名称为GVIM,在百度软件中可以下载GVIM的最新版本,建议 在百度上下载,因为比较快.在百度上搜索"GVIM" ...

  7. UnicodeEncodeError: 'ascii' codec can't encode characters in position 16-22: ordinal not in range(128)

    在python2.7下,将字符串写入到文件时会出现"UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in p ...

  8. CSS中背景图片的background-position中的left top到底是相对于谁的?

    在学习的时候遇到了如下问题: CSS中背景图片的background-position中的left top到底是相对于谁的,content-box?padding-box?border-box? ba ...

  9. ActiveRecord初始化,可以实现jfinal系统启动完成后,再建立数据库连接

    1.JFinalConfig的afterJFinalStart方法,可以实现系统启动成功后,调用的方法 2.ActiveRecord 多数据源初始化 package com.meiah.common; ...

  10. Angular动态表单生成(三)

    ng-dynamic-forms实践篇(上) 定个小目标 先来定个小目标吧,我们要实现的效果: 动态生成一个表单,里面的字段如下: 字段名称 字段类型 验证 备注 姓名 text 必填,长度小于15 ...