文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>单文档中只是想得到当前View类的指针

单文档中只是想得到当前View类的指针

时间:2011-03-10  来源:可可西

对于MFC的单文档应用程序,在其他的类中我们经常要获取View类的指针,以此来访问View下的public成员。

一般的方法:

1 CMainFrame* pMainFrm = (CMainFrame*)AfxGetMainWnd();
2 CMapGISView* pMapView = (CMapGISView*)pMainFrm->GetActiveView();

有时用这种方法会存在问题,程序会断言失败。我们来看看GetActiveView()的实现代码:

1 CView* CFrameWnd::GetActiveView() const
2 {
3 ASSERT(m_pViewActive == NULL ||
4 m_pViewActive->IsKindOf(RUNTIME_CLASS(CView)));
5 return m_pViewActive;
6 }

我们会发现在界面没有显示出来之前,m_pViewActive始终为NULL。

有时候,我们需要在界面没有出来之前,需要访问View类中的成员。这个时候,我们仅仅是需要一个View类的指针!

通过下列方法可以达到我们的目的:

1 CView* CMapGISApp::GetView()
2 {
3 POSITION p = GetFirstDocTemplatePosition();
4 CDocTemplate* pDocTemplate = GetNextDocTemplate(p);
5 POSITION p1 = pDocTemplate->GetFirstDocPosition();
6 CDocument* pDoc = pDocTemplate->GetNextDoc(p1);
7 POSITION p2 = pDoc->GetFirstViewPosition();
8 return pDoc->GetNextView(p2);
9 }
相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载