### 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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java核心的AutoJs6设计源码解析与应用指导
- 基于Java的玄关健康工作协同系统设计源码
- BMS电池管理系统matlab仿真模型限位EKF-SOC均衡充放电控制 电池管理系统BMS的matlab仿真模型限位EKF-SO
- 基于Gradle构建的Java、JavaScript、CSS、HTML、Shell多语言支持代码生成系统设计源码
- 基于Python的TEXT TO SQL转换功能的HTML+CSS+JavaScript全栈设计源码
- 接线盒选型手册(电气设计)
- 基于Java语言的0805培训班作业设计源码
- 基于Java和JavaScript的better-console设计源码,打造更强大的控制台图形用户界面框架
- 基于Python编程语言的深入学习与实践设计源码
- 剪板伺服送料机,程序,三菱,昆仑通态,送料机程序,PLC多段数据不同,可任意调节A段B段c段长度,并定长切断 程序能存储5段工