我有一个单文档程序,需要在框架类中访问视图类的成员函数
我用
  CMainFrame   *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;   
  CCTestSingleView   *pView=(CTestSingleView*)pMain->GetActiveView();
  但是不行,会报一个很奇怪的错误请问该怎么访问呢??

解决方案 »

  1.   

    CTestSingleView  * pView=(CTestSingleView*)((CMainFrame*)AfxGetMainWnd())->GetActiveView();
      

  2.   

    TO: 磨剑
    你的也不行,和我以前报一样的错误TO:小豹
    所谓奇怪的错误只以下这个错误:c:\program files\microsoft visual studio\myprojects\testsingle\testsingleview.h(21) : error C2143: syntax error : missing ';' before '*'意思是说我的TestSingleView.h中发生了错误.根据提示指向这一行: // Attributes
    public:
    CTestSingleDoc* GetDocument();但是这个是不可能的.因为我是系统自建的工程,这些代码都是系统自己加的.
    我自己的代码就是哪个在框架中获取试图的代码.TestSingleView中的代码我从来没有动过.
      

  3.   

    其他代码没有了啊.难道MFC自己生成的东西都有问题??
    整个工程我只有那么两行代码
    其实只要我在MainFrm.cpp 中加这一条#include "TestSingleView.h"
    就会出错.
    但是如果我不加这一条语句,系统会告诉我CTestSingleView 未定义.再次重申: 我只添加了以下这三条语句:  此三条语句都在MainFrm.cpp中
    #include "TestSingleView.h"
    CMainFrame   *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;   
    CCTestSingleView   *pView=(CTestSingleView*)pMain->GetActiveView();其他的都是系统生成的.我没有任何修改.
      

  4.   

    public:
    CTestSingleDoc* GetDocument();--
    能屏蔽的就屏蔽了
      

  5.   

    在MainFrm.h 包含文件之前+两句:
    CCTestSingleView ;
    CCTestSingleDoc ;
    如果还不行就把这两句加到stdafx.h中去.
      

  6.   

    TO:  QunKangLi(心里面疼得有点发酸 一定是有雾来了 打湿了我的眼眶)  这位朋友正解TO:angel_rabbit(zj_rabbit)
       可以用.不过不够完美.总之,谢谢所有朋友了