请问在一个单文档的应用程序,在CMainFrame类中创建的无模对话框怎样访问CView类中的成员函数,谢谢,急求!!!

解决方案 »

  1.   

    创建对话框之前将CMainFrame的指针传递给对话框保存,然后通过这个CMainFrame指针获得view,GetActiveView,需要强制转换成CxxxView
      

  2.   

    可是GetActiveView怎么用呀,我是这样用的CView *pView=GetActiveView(),可是在CMainFrame类中若包含了CView类的头文件就会出错(这个错误每个程序都有的,你可以试一下,任建一个单文档的应用程序,然后在CMainFrame类中包含CView类的头文件),怎么回事呀!
      

  3.   

    其他类中获取当前活动视图CxxxView指针:多文档:
    CMainFrame *pMF=(CMainFrame *)AfxGetMainWnd();
    CChildFrame *pCF=(CChildFrame *)pMF->GetActiveFrame();
    CxxxView *pActiveView = (CxxxView *)pCF->GetActiveView();
    单文档:
    CMainFrame *pMF=(CMainFrame *)AfxGetMainWnd();
    CxxxView *pActiveView = (CxxxView *) pMF->GetActiveView();
      

  4.   

    因为视图头文件前面需要文档类的头文件,你应该在MainFram实现文件中这么写
    #include "xxxDoc.h"
    #include "xxxView.h"
      

  5.   

    在CMainFrame类中创建的无模对话框怎样访问CView类中的成员函数
    可以先在CMainFrame头文件加入CView所对应的头文件~~~
    然后使用CView对象就可以了~~~
      

  6.   

    但是还是建议seu07201213的方法:
    //直接在CMainFrame里面使用~~~
    CxxxView *pActiveView = (CxxxView *)this->GetActiveView();
      

  7.   

    一楼兄弟已经说明白了,只是楼主在实践时因为没有 #include 文档类,编译不通过,像我那样改一下就好了。