环境:vs2005
我建了一个MFC的单文档工程,现在我要在主界面显示一些信息。我在CMyView类中的OnDraw方法中来画出这些信息。这些信息是CMainFrame类的成员变量。 
现在的问题是,我怎么才能把这些信息从CMainFrame传到CMyView中去? 
想了用全局变量,但是试了一下,没成功。 
希望知道的朋友说一下,谢谢!

解决方案 »

  1.   

    GetActiveView()可以获得活动的View。
      

  2.   

    在view中得到CMainFrame的指针就行啦
    http://blog.csdn.net/zhoubl668/archive/2008/10/22/3122635.aspx
      

  3.   

    用AfxGetMainWnd可以在视图类中获取框架类的指针,注意要转换一下类型
      

  4.   

    在CMyView获取CMainFrame的句柄:
    CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
    然后就能用它的变量了
      

  5.   

    方法有很多,我经常用两种:
    (1)在 MainFrm.CPP中定义一个全局的变量A,在View.cpp中利用extern引用这个变量。
         例如我在MainFrm.CPP中定义int a;
             在View.cpp中利用extern int a;引用a
        需要注意的是全局变量一定要在.cpp文件中定义,不能在.h头文件中定义
    (2)如果MainFrm.CPP中定义int a,在View.cpp中定义int b:
        先在View.cpp包含 MainFrm.h头文件 (#include "MainFrm.h")
        再利用下面的代码引用a
        CMainFrame *pMainFrame = (CMainFrame*)AfxGetMainWnd();
        b = pMainFrame->a;就可以了
        
      

  6.   

    那么能不能在View这边获得mainframe的对象呢?