初学vc,类间通信问题,望前辈指点
我先在vc中定义两个对话框类如CmyDlg1和CmyDlg2,两个类没有相互继承关系,都继承自Cwnd类,但是CmyDlg1中有两个变量x1,x2;CmyDlg2有x3,x4
都是public的,如何使用CmyDlg1的对象时将x1,x2传到x3,x4(两类是独立的)
有几种方法啊?????如果通过指针传递方法,如何得到CmyDlg2的实例对象指针啊???
[解决办法]
最简单也是最本的方法就是
在stdafx.h文件中声明两个全局变量。
然后你利用这两个全局变量完成值得传递。
很苯,但是很简单。
[解决办法]
在CMyApp类里定义两个CWnd变量,用来存放两个dialog的指针。
原理:所有类都能访问到app,用AfxGetApp
[解决办法]
最正规的方法是
1.为CmyDlg2增加一构造函数
CMyDlg2::CMyDlg2(变量 x5,变量x6 )
{
x3 =x5;
x4= x6;
}
构造CMyDlg2类对象时
CMyDlg2 dlg2(x3,x4);
[解决办法]
CmyDlg2 *dlg2;
在CmyDlg2中定义一个指针CmyDlg1 *dlg1;
dlg1=(CmyDlg1*)AfxGetApp()-> GetMainWnd(); //获取CmyDlg1窗口指针
dlg2-> x3=dlg1-> x1;
dlg2-> x4=dlg1-> x2;