如何在一个类中获得另一个类(如C**Doc,C**App,C**view)的指针呢?好象是通过一个AfxGetApp()函数来实现的,但不知道具体怎么用,还请各位高手帮忙!
 

解决方案 »

  1.   

    你可以强制转换
    1、从视图类获得文档类的指针
    在视图类中需要引用文档类的地方之前,使用以下语句:
     CTextDoc *pDoc=(CTestDoc*)GetDocument();
    2、从文档类取得视图类的指针
      CView* CTestDoc::GetVieww(CRuntimeClass* pClass)
        {   CView* pView;
            POSITION pos=GetFirstViewPosition();
            while(pos!=NULL)
        {
                pView=GetNextView(pos);
                if(pView->IsKindOf(pClass))
                     break;
        }
            if(!pView->IsKindOf(pClass))
                return  NULL;
            return pView;}
      

  2.   

    假如要在一个自定义类Clei, 声明Clei *lei; 然后有另外一个类Cbit bit; 你就可以在这个类里面 Clei dlg; and then dlg.lei=&bit; 这样的话你就可以在Clei 里使用类Cbit 的东东了.
      

  3.   

    先在一个类中创建另一个类指针实例: 如要C**App中引用C**view类中的一个函数write()
    可以这样写:C**view abc;
               abc->write();
      

  4.   

    那如何通过AfxGetApp()来做呢?老师好象要求用到这个函数的。
      

  5.   

    AfxGetApp()是系统提供的,你自己作的类需要自己传递指针参数。
    如果在你的APP类中有成员变量或函数,那么可以在对话框中调用这个函数获得APP类的指针,然后进行相应的操作。
      

  6.   

    AfxGetApp()是指向应用程序类CWinApp的指针
    能够访问到CWinApp对象的成员函数
    AfxGetApp()->m_pMainFrm获得框架类CMainFraim的指针
    CMainFraim中有GetActiveDocument(),GetActiveView()成员函数
    可以得到你要的指针
      

  7.   

    授人以鱼,不如授人以渔建议楼主买本 侯俊杰(又名侯捷)编写的《深入浅出MFC》一书,包你不遗憾!即使不系统学,遇到问题查阅一下也是好的!
      

  8.   

    CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainWnd();
    CMy005View *pWnd =(CMy005View*)pMainFrame->GetActiveView();编译能通过,但运行的时候却有问题。这是什么原因啊?