在一个SDI中,取视图应该用GetActiveView,但现在我在程序的
其他地方调用该函数,却返回了另外一个类型的视图,怎么办?
(我的程序向VC++界面一样,在控制条中使用了多个视图的派生类)

解决方案 »

  1.   

    POSITION pos = GetFirstViewPosition();
    while (pos != NULL)
    {
        CView* pView = GetNextView(pos);
        if( pView->IsKindOf( RUNTIME_CLASS( CMyView ) ) ){      }
    }
      

  2.   

    我在CMainFrame中无法得到该指针,GetActiveDocument 为空,
    请高手指点一二,不胜感激!!
      

  3.   

    如何在程序中得到各种对象的指针
    全局函数AfxGetApp可以得到CWinApp应用类指针 
    AfxGetApp()->m_pMainWnd为框架窗口指针 
    在框架窗口中:CFrameWnd::GetActiveDocument得到当前活动文档指针 
    在框架窗口中:CFrameWnd::GetActiveView得到当前活动视指针 
    在视中:CView::GetDocument得到对应的文档指针 
    在文档中:CDocument::GetFirstViewPosition,CDocument::GetNextView用来遍历所有和文档关联的视。 
    在文档中:CDocument::GetDocTemplate得到文档模板指针 
    在多文档界面中:CMDIFrameWnd::MDIGetActive得到当前活动的MDI子窗口 
      

  4.   

    不要太拘泥于MFC给你的框架,可以在CWinApp内做一个链表,比如
    typedef list< CView*>  MYVIEWLIST;
    MYVIEWLIST m_viewlist;
    在你的view InitUpdate 时将this指针加入其中,
     theApp.m_viewlist.push_back((CView*)this);
    这样你在哪都可以调用到。OK??? 努力吧!!!
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]