解决MFC多个对话框之间数据交换问题

本文介绍了如何解决在MFC应用中,两个对话框(CDLG1和CDLG2)之间的数据交换问题。通过在CDLG1中定义全局指针并在初始化时设置,在CDLG2中引用该指针,实现从CDLG1到CDLG2的数据传递,例如将CDLG1的输入框值显示在CDLG2的输入框中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决MFC多个对话框之间数据交换问题

初始

假设现在有两个对话框CDLG1与CDLG2

先右键对话框窗体添加两个类

在这里插入图片描述

类名设为CLDG1与CLDG2

任务

现在假设CLDG1有个输入框id为IDC_EDIT1

CDLG2有个输入框id为IDC_EDIT1,与一个按钮

目标是点击CDLG2的按钮就获取CDLG1的输入框,并输出在CDLG2的输入框

实现

利用指针的方式实现,在CDLG1.cpp的文件内定义全局指针,然后在初始化函数中设定。

CDLG1* Pclg1;
BOOL CDLG1::OnInitDialog() {
	CDialogEx::OnInitDialog();
	Pclg1 = this;
	return 1;
}

然后在CDLG2.cpp文件中加上CDL1的头文件并获取指针

#include"CDLG1.h"

extern CDLG1* Pclg1;
void CDLG2::OnBnClickedButton(){
    CString str;
    Pclg1->GetDlgItemText(IDC_EDIT1,str);
    SetDlgItemText(IDC_EDIT1, str);
}

大功告成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值