请问各位大侠,怎样在两个类之间传递参数:现有两个对话框类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获得的值?

解决方案 »

  1.   

    你的这个CTestdlgDlg是有模式 的还是无模式的呢?
    因为考虑到AddMenberDlg销毁的问题,我觉得你可以把CTestdlgDlg的实例放在其它地方,比如主框架类里,然后在AddMenberDlg中得到主框架再得到CTestdlgDlg,这样就可以了。
    CMainFrame *pfm=AfxGetmainWnd();
    pfm->dlg->addname=m_name;
    OnOK();
    这样,你就可以用了。
    我觉得你最好是通过其他类(比如主框架)来传递值。
      

  2.   

    我想你应当可以通过DOC类保存你AddMenberDlg中加入的m_name;然后在DOC类中
    更新所有的VIEW
      

  3.   

    可以用friend class
    还可用全局变量,用extern 在类里面引用
    还有可以在MainFrame里面声明用AfxGetApp()调用
      

  4.   

    你的那种方法还是比较常用的。
    或你就像 georgehuang() 说的
    或通过全局变量(部推荐)
      

  5.   

    你的CTestdlgDlg会自动销毁,所以你没法获得m_name正如前面各位而言,m_name最好存储到CDoc等类中的变量中
      

  6.   

    传递最好使用消息机制, 然后使用WM_COPYDATA