`

MFC框架各部分指针获取方式

    博客分类:
  • VC
阅读更多
前人在CSDN总结的,曾经帮助过我,整理总结一下,希望也能帮助一下别人。
    

获得CWinApp
获得CMainFrame
获得CChildFrame
获得CDocument
获得CView

在CWinApp中  
AfxGetMainWnd()

m_pMainWnd
AfxGetMainWnd()->MDIGetActive()

AfxGetMainWnd()->GetActiveFrame()
SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()

MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()
SDI:AfxGetMainWnd()->GetActiveView() 
MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 
在CMainFrame中  AfxGetApp()

theApp
  MDIGetActive()

GetActiveFrame()
SDI:GetActiveView()->GetDocument() 
MDI:MDIGetActive()->GetActiveView()->GetDocument()   SDI:GetActiveView() 
MDI:MDIGetActive()->GetActiveView() 
在CChildFrame中  AfxGetApp()

theApp
GetParentFrame()   
GetActiveView()->GetDocument()   GetActiveView()
在CDocument中  AfxGetApp()

theApp
AfxGetMainWnd()    AfxGetMainWnd()->MDIGetActive()

AfxGetMainWnd()->GetActiveFrame()
  POSITION   pos   =   GetFirstViewPosition();GetNextView(pos)  
在CView中  AfxGetApp()

theApp
AfxGetMainWnd()    GetParentFrame()    GetDocument() 
在其他类中  AfxGetApp()
AfxGetMainWnd()    AfxGetMainWnd()->MDIGetActive()

AfxGetMainWnd()->GetActiveFrame()
SDI:AfxGetMainWnd()->GetActiveView()->GetDocument()

MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()
SDI:AfxGetMainWnd()->GetActiveView() 
MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 


理一理MFC的这几个类的关系,可以很容易明白上面的这些乱七八糟的逻辑。
App是应用域,所有的域中的东西都可以通过全局函数访问到它。
MainFrame是主框架,也基本可以用全局函数访问到。
MainFrame下是若干个ChildFrame,ChildFrame中若干个View和Document(可能不成对),ChildFrame管理着View,View和Document进行互操作。
因此整体框架就出来了,一般除了直接应用的关系都可以通过MainFrame-->Active ChildFrame-->Active View-->Document这条线进行访问,这应该叫什么来自?万能方法吧^_^。
恕我懒惰,不愿意画一个更详细的图解,凑合着看看吧。
分享到:
评论

相关推荐

    MFC 框架各部分指针获取方式

    在这些框架中,正确地获取各部分的指针对于实现功能和控制程序流程至关重要。本篇文章将详细介绍如何在MFC框架中获取MainFrame(主框架窗口)、ChildFrame(子框架窗口)、Active View(活动视图)以及与其关联的...

    MFC框架各部分指针获取方式.doc

    VC6编程方面的资料,希望对大家有用; 彻底共享,决不要分!

    MFC中SDI、MDI框架各部分指针获取

    在深入探讨MFC(Microsoft Foundation Classes)中SDI(单文档界面)与MDI(多文档界面)框架的指针获取方法之前,我们先来理解一下MFC的基本架构及其核心概念。MFC作为Windows应用程序开发的重要工具包,提供了丰富...

    mfc中各类指针的获取

    菜单是MFC程序的重要组成部分之一,可以通过`AfxGetMainWnd()`和`GetMenu()`来获取菜单的指针: ```cpp CMenu*pMenu=AfxGetMainWnd()->GetMenu(); ``` 这将返回一个指向主窗口菜单的指针。 #### 4. 获取工具栏和...

    VC++ ,在不同类中的MFC各种指针获取方式

    ### VC++ 在不同类中的MFC各种指针获取方式 #### 概述 在Microsoft Foundation Classes (MFC) 库中开发Visual C++ (VC++) 应用程序时,经常需要在不同的类之间获取和传递指针。这些操作通常涉及获取应用程序对象、...

    MFC指针的获取

    2. **获取主框架指针**: 主框架窗口通常是应用程序的顶级窗口,包含了菜单、工具栏等元素。`CWinApp`类有一个公有成员变量`m_pMainWnd`,它是主框架窗口的指针。可以这样获取: ```cpp CMainFrame* pMainFrame =...

    在MFC类中各种类的指针的获取和应用.doc

    在MFC(Microsoft Foundation Classes)框架中,类的指针获取和应用是非常关键的,尤其在处理文档(Document)、视图(View)和框架(Frame)之间的交互时。MFC是一种面向对象的类库,用于简化Windows应用程序的开发...

    在MFC类中各种类的指针的获取和应用

    总之,理解MFC中不同类的指针获取对于有效地在类之间传递信息和控制非常重要。开发者需要熟悉MFC类的层次结构和它们的方法,以便正确地操作这些指针。同时,注意类型转换的安全性,避免出现未定义的行为或运行时错误...

    指针获取方式_MFC

    在MFC(Microsoft Foundation Classes)框架中,指针获取是一个重要的功能,因为它允许开发者在不同类之间进行通信和协作。MFC是微软提供的一套面向对象的类库,用于简化Windows应用程序开发。以下是对MFC中获取不同...

    MFC获得各类指针,句柄的方法

    本文旨在详细介绍如何在MFC中获取各种类型的句柄和指针,并提供具体的代码示例。 #### MFC中获取常见类句柄 在MFC开发中,经常需要访问文档类、视图类、框架类和应用程序类等的基本信息。以下是一些常用的方法: 1...

    MFC中获取各种类指针的方法

    本文将详细介绍在MFC中获取各种类指针的方法,这对于理解和使用MFC框架至关重要。 1) **在View中获得Doc指针**: 在视图类(如CView或其派生类)中,可以使用`GetDocument()`函数来获取关联的文档对象(CDocument的...

    MFC文档视图指针相获取

    以上内容涵盖了MFC中基本的指针获取方法,它们在构建MFC应用程序时非常重要。熟练掌握这些技巧,可以帮助开发者更高效地操纵和控制MFC组件,从而编写出更加灵活和可维护的代码。然而,实际编程中应根据具体需求进行...

    MFC中 各类的指针和句柄的获取方法

    本文将详细介绍如何在MFC中获取各类指针和句柄,以及常用API函数的使用。 首先,让我们了解什么是指针和句柄。指针在C++中是一个变量,它存储了另一个变量的地址,而在MFC中,类的指针通常用来指向类的对象。句柄则...

    MFC获取指针.doc

    MFC获取指针.mfc框架中各个文件中函数的调用所必需的的指针

    MFC应用程序中指针的应用

    在MFC(Microsoft Foundation Class)应用程序开发中,指针的使用是至关重要的,尤其是在涉及到对象间的交互和数据传递时...通过理解MFC框架中的对象关系和指针操作,开发者可以构建更复杂、更高效的Windows应用程序。

    MFC应用程序中指针的使用

    通过调用`GetMenu()`函数,我们可以获取主框架窗口的菜单指针:`CMenu *pMenu = m_pMainWnd->GetMenu();` 9) 在任何类中获得应用程序类: `AfxGetApp()`全局函数可用于在任何地方获取应用程序类的指针,例如:`...

Global site tag (gtag.js) - Google Analytics