我想在mainfrm里面调用CCakView类下面的funcA();
执行CCakView   *   pView   =(CCakView   *)GetActiveView(); 会报CCakView没定义#include"CakView.h"又会报缺少';'之类的错误,查了下好像是因为头文件互相包含的缘故试了试在mainfrm.h里面前置声明class CCakView 的话
CCakView   *   pView   =(CCakView   *)GetActiveView();就没有错误了 
 但是执行 pView->fnucA();的话 又会报CCakView没定义!但是要是直接CView  *   pView= (CView   *)GetActiveView();的话 ,应该无法访问到我在View里自定义的函数funcA()吧?请问牛人们 我在mainfrm里面怎样才能访问到那个func()啊!急啊~~分少大家帮帮忙 谢谢啦!

解决方案 »

  1.   

    如果只有一个视图
    CCakView * pView =(CCakView *)GetActiveView(); 
    是没问题的在CPP里面加上
    #include"CakView.h"就可以了啊不知道你是哪里有问题
      

  2.   

    #include"CakView.h"又会报缺少';'之类的错误,查了下好像是因为头文件互相包含的缘故
    ------------------------------
    这个很好解决,你在你的view类的头文件上加上#include <CakDoc.h>或者class CCakDoc;即可
    试了试在mainfrm.h里面前置声明class CCakView 的话
    CCakView * pView =(CCakView *)GetActiveView();就没有错误了  
     但是执行 pView->fnucA();的话 又会报CCakView没定义!
    但是要是直接CView * pView= (CView *)GetActiveView();的话 ,应该无法访问到我在View里自定义的函数funcA()吧?
    请问牛人们 我在mainfrm里面怎样才能访问到那个func()啊!急啊~~分少大家帮帮忙 谢谢啦!
    -----------------------------------------------
    在框架类中访问视图类
    SDI: ((CCakView*)GetActiveView())->func();
    MDI: ((CCakView*)(GetActiveFrame()->GetActiveView()))->func();
         或者这样:((CCakView*)(MDIGetActive()->GetActiveView()))->func();