1.MFC中框架类怎么去访问视类的public数据,哪位大哥大姐能帮帮忙呀 急!谢谢2.MFC中在哪里去定义一个全局的变量 使得框架类也能用 视类也能用!

解决方案 »

  1.   


    1、通过以下函数获得视图的指针,然后访问CFrameWnd::GetActiveView2、在函数以外就可以定义,定义后,可以看到。
      

  2.   

    1:在框架类里获得视类的对象指针就可以直接访问啦(框架类里有成员函数获得)
    2:在框架类的头文件定义,想在视类里用就先用extern声明是外部变量然后再使用就可以啦
      

  3.   

    CFrameWnd::GetActiveView 得到的是CView* 类型的;得到的这个指针不能指向当前视类中成员变量呀。如果在前面做一个强制类型转换 转化成当前的视类的类型 并在前面加一个头文件 编译也会报错  能不能再给小弟解释一下
      

  4.   

    VC一定要找指针.
    找到强转一下Cxxxx* pxxxx=(Cxxxx*)指针  .再pxxxx->
      

  5.   

    CXXXView *tview=(CXXXView *)GetActiveView();
    加CXXXView的头,再在class CMainFrame : public CFrameWnd的前面加class CXXXDoc;
      

  6.   

    livedeal(怀念) :
    还是不行呀
    public:
    CMy001Doc* GetDocument(); 错误老指向这一行;
    e:\visualc++testcode\test 6.0\001\001view.h(21) : error C2143: syntax error : missing ';' before '*'
    e:\visualc++testcode\test 6.0\001\001view.h(21) : error C2501: 'CMy001Doc' : missing storage-class or type specifiers
    e:\visualc++testcode\test 6.0\001\001view.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
    执行 cl.exe 时出错.
      

  7.   

    CMy001Doc* pMy001Doc=(CMy001Doc*)GetDocument();
      

  8.   

    这个出错一定是你忘了#include一个头文件,我估计这个头文件名字叫“My001Doc.h”
      

  9.   

    要注意头文件的包含顺序,
    #include "XXXDoc.h"
    #include "XXXXView.h"
    要这样包含,因为view类里用到doc的成员
      

  10.   

    关于第一个问题,你刚才的CMy001Doc不识别,编绎器没有将其当成一个类来看,所以很可能少了#include "CMy001Doc",注意不能多次包含,顺序应该为#include "stdafx.h"在最前面,然后再是后面的。
    关于第二个问题,在APP里面有一个全局的指针,你可以在APP里面定义一个变量,然后可以在任何一个地方用theApp->来访问之