### VC++ 在不同类中的MFC各种指针获取方式 #### 概述 在Microsoft Foundation Classes (MFC) 库中开发Visual C++ (VC++) 应用程序时,经常需要在不同的类之间获取和传递指针。这些操作通常涉及获取应用程序对象、主窗口、文档、视图以及其他相关组件的指针。下面将详细介绍如何在不同的类中通过MFC提供的函数来获取这些重要的指针。 #### CWinApp `CWinApp` 类是MFC应用程序的核心,用于管理整个应用程序的生命周期。获取 `CWinApp` 对象的主要方法包括: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `AfxGetMainWnd()`:返回指向应用程序主窗口的指针。 - **成员变量**: - `m_pMainWnd`:指向主窗口的指针。 - **成员函数**: - `MDIGetActive()`:返回当前激活的MDI子窗口的指针。 - `GetActiveFrame()`:返回当前激活的框架窗口指针。 - **文档指针获取**: - SDI(单文档接口): - `AfxGetMainWnd()->GetActiveView()->GetDocument()`:获取当前激活视图的文档。 - MDI(多文档接口): - `AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()`:获取当前激活的MDI子窗口中的视图文档。 - **视图指针获取**: - SDI: - `AfxGetMainWnd()->GetActiveView()`:获取当前激活的视图。 - MDI: - `AfxGetMainWnd()->MDIGetActive()->GetActiveView()`:获取当前激活的MDI子窗口中的视图。 #### CMainFrame `CMainFrame` 类用于表示MDI应用程序的主框架窗口。获取 `CMainFrame` 对象的主要方法包括: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `theApp`:全局的应用程序对象指针。 - **成员函数**: - `MDIGetActive()`:返回当前激活的MDI子窗口的指针。 - `GetActiveFrame()`:返回当前激活的框架窗口指针。 - **文档指针获取**: - SDI: - `GetActiveView()->GetDocument()`:获取当前激活视图的文档。 - MDI: - `MDIGetActive()->GetActiveView()->GetDocument()`:获取当前激活的MDI子窗口中的视图文档。 - **视图指针获取**: - SDI: - `GetActiveView()`:获取当前激活的视图。 - MDI: - `MDIGetActive()->GetActiveView()`:获取当前激活的MDI子窗口中的视图。 #### CChildFrame `CChildFrame` 类用于表示MDI子窗口的框架窗口。获取 `CChildFrame` 对象的主要方法包括: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `theApp`:全局的应用程序对象指针。 - **成员函数**: - `GetParentFrame()`:返回父框架窗口的指针。 - **文档指针获取**: - `GetActiveView()->GetDocument()`:获取当前激活视图的文档。 - **视图指针获取**: - `GetActiveView()`:获取当前激活的视图。 #### CDocument `CDocument` 类用于表示文档对象。获取 `CDocument` 对象的主要方法包括: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `theApp`:全局的应用程序对象指针。 - **成员函数**: - `AfxGetMainWnd()`:返回指向应用程序主窗口的指针。 - `AfxGetMainWnd()->MDIGetActive()`:返回当前激活的MDI子窗口的指针。 - `AfxGetMainWnd()->GetActiveFrame()`:返回当前激活的框架窗口指针。 - **视图迭代**: - `POSITION pos = GetFirstViewPosition();` - `GetNextView(pos)`:迭代获取所有视图对象。 #### CView `CView` 类用于表示视图对象。获取 `CView` 对象的主要方法包括: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `theApp`:全局的应用程序对象指针。 - **成员函数**: - `AfxGetMainWnd()`:返回指向应用程序主窗口的指针。 - `GetParentFrame()`:返回父框架窗口的指针。 - **文档指针获取**: - `GetDocument()`:获取当前视图所关联的文档对象。 #### 其他类 对于非MFC标准类,可以通过以下方式获取指针: - **全局函数**: - `AfxGetApp()`:返回当前活动的应用程序对象指针。 - `AfxGetMainWnd()`:返回指向应用程序主窗口的指针。 - **成员函数**: - `AfxGetMainWnd()->MDIGetActive()`:返回当前激活的MDI子窗口的指针。 - `AfxGetMainWnd()->GetActiveFrame()`:返回当前激活的框架窗口指针。 - **文档指针获取**: - SDI: - `AfxGetMainWnd()->GetActiveView()->GetDocument()`:获取当前激活视图的文档。 - MDI: - `AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument()`:获取当前激活的MDI子窗口中的视图文档。 - **视图指针获取**: - SDI: - `AfxGetMainWnd()->GetActiveView()`:获取当前激活的视图。 - MDI: - `AfxGetMainWnd()->MDIGetActive()->GetActiveView()`:获取当前激活的MDI子窗口中的视图。 通过这些方法可以在VC++ 的MFC应用程序中灵活地获取和传递各种类型的指针,从而实现更高效的应用程序设计与开发。
- 粉丝: 7
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助