------------------------------------------------------------------------------------------
|对话框与对话框数据传递|
------------------------------------------------------------------------------------------
MFC程序中不同的对话框类传递数据
如何在MFC中不同的对话框类中传递数据,有两种方式:
1. 在定义某一个对话框类之后,并且在调用DoModal之前把数据传过去,比如:
对话框CTest1Dlg有一指针m_p1,对话框CTest2Dlg中有一指针m_p2,可以通过如下方式传递数据,在CTest1Dlg中:
CTest2Dlg dlg;
dlg.m_p2 = this->m_p1;
dlg.DoModal;
2. 通过全局的数据,这个数据应该是放在CxxApp类中的,比如:
CMainApp中有一数据m_p3;在其它的对话框中可以这样调用这个数据:
1,
CMainApp *app = (CMainApp*)AfxGetApp();
app->m_p3;
2,
CFrameWnd *pFrame=(CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CMOfqk0028Doc * pDoc=(CMOfqk0028Doc*)pFrame->GetActiveDocument();
上面说的有可能朋友们看不懂,下面给个简单实现的代码:
CCellTrackDlg * pDlg = (CCellTrackDlg*)GetParent();//常用
if(pDlg != NULL)
{
m_speed = pDlg->m_posRatio;
m_totle = pDlg->m_totalNum;
}
在需要使用别的类数据中添加以上代码: m_speed、m_totle是本类的公有成员变量,m_posRatio、m_totalNum是需调用类的公有成员变量,pDlg是父类的指针,即
被调用类的指针。
-------------------------------------------------------------------------------------------
|对话框与对话框数据传递|
------------------------------------------------------------------------------------------
MFC程序中不同的对话框类传递数据
如何在MFC中不同的对话框类中传递数据,有两种方式:
1. 在定义某一个对话框类之后,并且在调用DoModal之前把数据传过去,比如:
对话框CTest1Dlg有一指针m_p1,对话框CTest2Dlg中有一指针m_p2,可以通过如下方式传递数据,在CTest1Dlg中:
CTest2Dlg dlg;
dlg.m_p2 = this->m_p1;
dlg.DoModal;
2. 通过全局的数据,这个数据应该是放在CxxApp类中的,比如:
CMainApp中有一数据m_p3;在其它的对话框中可以这样调用这个数据:
1,
CMainApp *app = (CMainApp*)AfxGetApp();
app->m_p3;
2,
CFrameWnd *pFrame=(CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CMOfqk0028Doc * pDoc=(CMOfqk0028Doc*)pFrame->GetActiveDocument();
上面说的有可能朋友们看不懂,下面给个简单实现的代码:
CCellTrackDlg * pDlg = (CCellTrackDlg*)GetParent();//常用
if(pDlg != NULL)
{
m_speed = pDlg->m_posRatio;
m_totle = pDlg->m_totalNum;
}
在需要使用别的类数据中添加以上代码: m_speed、m_totle是本类的公有成员变量,m_posRatio、m_totalNum是需调用类的公有成员变量,pDlg是父类的指针,即
被调用类的指针。
-------------------------------------------------------------------------------------------