MFC不同窗口之间传递数据
转自:http://blog.csdn.net/my_dreamest_gigi/article/details/6342818
实现方法:
class CDlg1: public CDialog
{
public:
int x;
……
}
class CDlg2: public CDialog
{
public:
int y;
void setdata(CDlg1 dlg1)
{
// 实现数据的传递
}
……
}
方法一:通过成员函数实现不同对话框之间数据的传递
class CmyView: public CView
{
CDlg1 dlg1; // 类中声明欲进行数据传递的对话框对象
CDlg2 dlg2;
void XXXXX()
{
dlg1.DoModal(); // 建立对话框1,重写OnInitial()函数
// 在OnInitial()函数中完成对话框1数据初始化工作
}
void YYYYY()
{
dlg2.y = dlg1.x; // 传递数据
dlg2.DoModal();
}
}
方法二:通过类的成员变量实现数据的传递(适用于参数较少的情况)
class CmyView: public CView
{
int z;
void XXZZ()
{
CDlg1 dlg1;
dlg1.DoModal();
z = dlg1.x; // 将对话框1数据保存于类中的成员变量中
}
void ZZYY()
{
CDlg2 dlg2;
dlg2.y = z; // 将成员变量值赋予对话框2对应变量
dlg2.DoModal();
}
}
方法三:将对话框1对象作为参数传递给对话框2的成员函数,在成员函数中实现参数的传递
class CmyView: public CView
{
void DataExChange()
{
CDlg1 dlg1;
cDlg2 dlg2;
if(dlg1.domodel == idok)
{
dlg2.setdata(dlg1); // 把dlg1作为参数给dlg2用什么取什么
}
}
}
还可以传递对象的一个指针或引用。