MFC框架指针获取与面向对象编程解析
需积分: 50 152 浏览量
更新于2024-08-19
收藏 1.95MB PPT 举报
"MFC框架各部分指针获取方式"
在MFC(Microsoft Foundation Classes)框架中,获取不同类的指针是进行可视化编程的关键步骤。以下是对标题和描述中提到的知识点的详细说明:
1. **CWinApp**:这是MFC应用程序的核心类,代表整个应用程序。可以通过以下方式获取其指针:
- `AfxGetApp()`:返回当前应用程序的CWinApp实例指针。
- `m_pMainWnd`:CWinApp类中的成员变量,它指向主窗口。
2. **CMainFrame**:代表应用程序的主框架窗口。获取它的指针有以下方法:
- `AfxGetMainWnd()`:返回应用程序的主窗口指针,对于MDI应用,它通常是CMainFrame的实例。
- `theApp->MDIGetActive()`:对于MDI(多文档界面)应用,返回当前激活的子框架窗口。
- `GetActiveFrame()`:返回当前活动的子框架窗口。
3. **CChildFrame**:表示MDI应用程序中的子框架窗口。获取CChildFrame指针的方法:
- `AfxGetApp()` 或 `theApp`:返回CWinApp指针,然后通过适当的方法找到子框架窗口。
- `GetParentFrame()`:从视图或文档中获取其父框架窗口,即CChildFrame。
4. **CDocument**:代表文档类,是数据存储的地方。获取CView的指针通常是为了访问关联的文档:
- `AfxGetApp()` 或 `theApp`:获取CWinApp指针。
- `AfxGetMainWnd()`:获取主窗口。
- `GetFirstViewPosition()` 和 `GetNextView()`:遍历文档的所有视图。
5. **CView**:视图类,用于显示和编辑文档。获取视图的文档指针:
- `AfxGetApp()` 或 `theApp`:获取CWinApp指针。
- `AfxGetMainWnd()`:获取主窗口。
- `GetParentFrame()`:获取视图的框架窗口。
- `GetDocument()`:从视图获取关联的文档。
除此之外,对于其他类,通常使用`AfxGetApp()`和`AfxGetMainWnd()`来获取CWinApp实例和主窗口指针,这可以作为进一步查找所需指针的基础。
在MFC中,面向对象编程是核心思想。对象是类的实例,类定义了对象的属性(成员变量)和行为(成员函数)。类的访问权限(public, protected, private)控制对这些成员的访问。继承允许创建一个类(派生类)从另一个类(基类)继承属性和行为。`this`指针在成员函数中隐含存在,它指向调用该成员函数的对象,使得成员函数能访问和操作对象的成员。
例如,当有多个形状类(如CRect、CTriangle、CCircle等)从一个基类CShape派生时,每个形状类都有自己的颜色属性(m_color)。虽然它们都继承了setcolor函数,但通过`this`指针,setcolor函数可以访问调用它的特定对象的颜色属性,实现对不同数据的处理。如果要统一处理所有形状类的显示,可以将display函数定义在基类中,但由于每个形状的显示方式不同,display通常需要在派生类中重写以适应具体形状。
2009-05-19 上传
2010-07-28 上传
2019-02-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
我的小可乐
- 粉丝: 25
- 资源: 2万+
最新资源
- C++ Qt影院票务系统源码发布,代码稳定,高分毕业设计首选
- 纯CSS3实现逼真火焰手提灯动画效果
- Java编程基础课后练习答案解析
- typescript-atomizer: Atom 插件实现 TypeScript 语言与工具支持
- 51单片机项目源码分享:课程设计与毕设实践
- Qt画图程序实战:多文档与单文档示例解析
- 全屏H5圆圈缩放矩阵动画背景特效实现
- C#实现的手机触摸板服务端应用
- 数据结构与算法学习资源压缩包介绍
- stream-notifier: 简化Node.js流错误与成功通知方案
- 网页表格选择导出Excel的jQuery实例教程
- Prj19购物车系统项目压缩包解析
- 数据结构与算法学习实践指南
- Qt5实现A*寻路算法:结合C++和GUI
- terser-brunch:现代JavaScript文件压缩工具
- 掌握Power BI导出明细数据的操作指南