请问各位大侠,怎样在两个类之间传递参数:现有两个对话框类AddMenberDlg和CTestdlgDlg,下面的程序:
void AddMenberDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CTestdlgDlg dlg;
dlg.addname=m_name;
CDialog::OnOK();
}
addname是CTestdlgDlg类中的一个public变量,m_name是AddMenberDlg的成员变量(CString),现在我如何在CTestdlgDlg类中使用addname获得的值?
void AddMenberDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CTestdlgDlg dlg;
dlg.addname=m_name;
CDialog::OnOK();
}
addname是CTestdlgDlg类中的一个public变量,m_name是AddMenberDlg的成员变量(CString),现在我如何在CTestdlgDlg类中使用addname获得的值?
因为考虑到AddMenberDlg销毁的问题,我觉得你可以把CTestdlgDlg的实例放在其它地方,比如主框架类里,然后在AddMenberDlg中得到主框架再得到CTestdlgDlg,这样就可以了。
CMainFrame *pfm=AfxGetmainWnd();
pfm->dlg->addname=m_name;
OnOK();
这样,你就可以用了。
我觉得你最好是通过其他类(比如主框架)来传递值。
更新所有的VIEW
还可用全局变量,用extern 在类里面引用
还有可以在MainFrame里面声明用AfxGetApp()调用
或你就像 georgehuang() 说的
或通过全局变量(部推荐)