如题,在MFC中。

解决方案 »

  1.   

    将View类作为类成员,构造时初始化之,然后调用之。
      

  2.   

    #include <windows.h>class A
    {
       CView *pView = new CView()
       pView ->Method();
    }just do it ,ok
      

  3.   

       楼上说的方法会出问题的,因为,在MFC中cview,cwinApp,CMainFram,cdoc这些对象在运行时己经初始化好了,
    如果在刚才的类中声明一个对象,那么就会倒置MFC自动初始化的对象,与自己声明的对象不同.程序运行得不到所要
    的结果.
       如果是单文档的程序可以用以下方法得到MFC的CView对象
       
      比如说你的类是如下:
       #include "PanelBuilderView.h"
      class A
      {
         int a(int,int)
         {
           //这里得到MFC例化的CVIEW对象,然后调用函数CPanelBuilderView*是强制转换指针的作用
           ((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->thefunction();
          }
         
     
       };
       如果你的是多视图的话,那么这样做
       ((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_SpliterWnd).GetPane(0,1))->
       thefunction();
       因为多视图用到了分割窗体,用GetPane(0,1)得到是哪一个窗体,再转换即可,注意把CMainFrame里的m_SpliterWnd
       换成公有成员,才可以访问,这样才不会出问题,
       注意对象不同,内存空间不同,很容易出现问题.