解决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);
}
大功告成