工程名为333
一个对话框DIALOG1对应的类为CAdd,另一个对话框DIALOG2对应的类为CTree
我想在CAdd里调用CTree里的函数。问怎么样才能调用.
CMy333App *pApp=(CMy333App *)AfxGetApp();
CTree *pTree=(CTree *)pApp->m_pMainWnd;
这样不好用,为什么

解决方案 »

  1.   

    CMy333App *pApp=(CMy333App *)AfxGetApp();
    CTree *pTree=(CTree *)pApp->m_pMainWnd;
    这样肯定不行的
    你肯定要定义CAdd、CTree 变量吧?在那里定义的?
    不说这个没法给你说的
    建议你定义在 mainwnd里面
    然后在各个类里面 (CMainFrame*)AfxGetApp()->m_pMainWnd->变量名
    就OK了
      

  2.   

    我的工程里有一个对话框对应的类为CTree,对话框里有个ListCtrl 控件,还有个添加按钮,当点添加按扭时,就调用CAdd类的对话框,当点CAdd类的对话框里的添加按钮时,添加内容添加到ListCtrl控件里.该工程是基于单文档的。CTree对话框为主窗体菜单弹出的。CTree里有个ReadtoList()函数。请问如何调用这个函数。
    void CAdd::OnButtonAdd() 
    {
    // TODO: Add your control notification handler code here
    CString sql;
    UpdateData();
             .........
             验证完整性信息,且添加成功
             ............. 
             
             CMy333App *pApp=(CMy333App *)AfxGetApp();
             CTree *pTree=(CTree *)pApp->m_pMainWnd;
             
             pTree->ReadtoList("select * from student");

    }
    这么写不对呀。
      

  3.   

    在CTree对话框的添加按钮函数里调用CAdd对话框
    CTree::OnButtonAdd()
    {
            CAddDig dlg;
            if(dlg.DoModal()==IDADD)
            {
              //将CAdd的有关数据保存
             }
    }