zoukankan      html  css  js  c++  java
  • 单文档中只是想得到当前View类的指针

    对于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 }
  • 相关阅读:
    phpcs
    asp.net之cookie
    ajax技术
    union、except和intersect查询
    外连接查询
    对查询结果分组
    聚合函数查询
    数据库的约束
    数据库备份
    fusionCharts
  • 原文地址:https://www.cnblogs.com/kekec/p/1979585.html
Copyright © 2011-2022 走看看