代码如下:
[code]
    CMainFrame* pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
    CMFCExGui2View* pView = (CMFCExGui2View*)pFrame->GetActiveView();
[/code]
假设以上代码出现在我定义的类里面,如果不要第二条语句,能运行 ,加上第二条语句,就会出现如下错误:
[code]
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “CMFCExGui2View”: 未声明的标识符
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “pView”: 未声明的标识符
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “CMFCExGui2View”: 未声明的标识符
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2059: 语法错误 : “)”
[/code]最开始 我以为是头文件没有添加,然后我把头文件添加进去。然后继续出错。
这次是在VIEW试图里面,错误如下:
[code]
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
[/code]
但是以上出错的地方估计没问题:
[code]
public:
    CMFCExGui2Doc* GetDocument() const;[/code]
我想估计是头文件什么地方定义有问题@@但是没找到确切出错的地方在哪求解 纠结啊 纠结

解决方案 »

  1.   

    1. 单文档   
    CYourView *m_View = (CYourView* )((CMainFrame *)AfxGetMainWnd())->GetActiveView()));   
    2. 多文档:   
    CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
    // Get the active MDI child window.
    CMDIChildWnd *pChild = (CMDIChildWnd *) pFrame->GetActiveFrame();
    // or CMDIChildWnd *pChild = pFrame->MDIGetActive();
    // Get the active view attached to the active MDI child
    // window.
    CMyView *pView = (CMyView *) pChild->GetActiveView();
      

  2.   

    代码如下:
    复制代码
        CMainFrame* pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
        CMFCExGui2View* pView = (CMFCExGui2View*)pFrame->GetActiveView();假设以上代码出现在我定义的类里面,如果不要第二条语句,能运行 ,加上第二条语句,就会出现如下错误:
    复制代码
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “CMFCExGui2View”: 未声明的标识符
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “pView”: 未声明的标识符
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2065: “CMFCExGui2View”: 未声明的标识符
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\fileview.cpp(188) : error C2059: 语法错误 : “)”
    最开始 我以为是头文件没有添加,然后我把头文件添加进去。然后继续出错。
    这次是在VIEW试图里面,错误如下:
    复制代码
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    1>d:\my documents\visual studio 2008\projects\mfcexgui2\mfcexgui2\mfcexgui2view.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int但是以上出错的地方估计没问题:
    复制代码
    public:
        CMFCExGui2Doc* GetDocument() const;我想估计是头文件什么地方定义有问题@@但是没找到确切出错的地方在哪求解 纠结啊 纠结