第5讲 MFC 编程基础1
更新时间:2023-05-29 14:58:01 阅读量: 实用文档 文档下载
- 第5人格推荐度:
- 相关推荐
C++ MFC
第7章
MFC编程基础
1、MFC概述
2、MFC层次结构及其子类功能3、MFC应用程序架构
4、基于框架的MFC应用程序分析
C++ MFC
7.1 MFC概述MFC:Microsoft Foundation Class首先:它是一个类库、功能是控制整个计算 机系统。 其次:它是一个面向对象的应用程序框架, 程序员可以使用这一框架创建 Windows应用程序。 同时:MFC的组织是以C++类层次形式组织 起来的,几个高层类提供一般功能, 而低层类实现更具体的功能,每一个低 层类都是从高层类派生而来,因此继承 了高层类的功能。
C++ MFC
所以:MFC是一种类的层次结构, 它提供了一个应用程序开发框架, 此框架称为文档/视图架构。 它对应的是Windows系统目录下 的一系列mfc*.dll文件。
C++ MFC
MFC的实质 MFC就是利用面向对象的思想,将数 据类型与Windows大部分API函数封 装起来的一个浩瀚的类库,利用MFC 编写程序本质上就是选择该类库中 合适的类,并调用其下相应成员函 数来完成某个功能。
C++ MFC
Win32数据类型UINT BYTE HANDLE HWND
WORDDWORD LONG WPARAM LPARAM LRESULT LPSTR LPCSTR
HDCHMENU HICON MSG WNDCLASS RECT POINT SIZE
C++ MFC
Win32API接口函数1、Windows消息函数 2、文件处理函数 3、网络函数 4、菜单函数 5、文本与字体函数 6、硬件与系统函数 7、控件和消息函数 8、位图、图标和光栅运算函数 9、绘图函数 10、打印函数 11、设备场景函数 12、进程和线程函数
C++ MFC
程序员如何去学习MFC
1、C++语言基础 2、Windows操作系统基础 3、面向对象程序观念的基础
抽象、封装、继承、多态
C++ MFC
站在OS角度上看程序1、执行程序的过程是OS完成任务的过程 2、程序执行一次是创建了一个进程,申请了 一个独立的内存空间。 3、程序和OS是通过事件驱动、消息机制通信 的 4、一个程序必有一个WinMain函数 5、一个程序必有一个窗口,进行输入输出 6、一个程序的启动过程,就是一个WinMain函 数的加载过程 7、一个程序至少由两部分组成: WinMain、WndProc
C++ MFC
面向对象观点看待Windows编程1、具有应用程序对象,功能包括: 注册窗口(填充窗口结构,注册窗口), 初始化程序实例(创建、显示、刷新)。 2、具有窗口对象,功能相当于WndPro 函数 3、保留WinMain函数,实现消息循环。 4、最好实现数据与显示分离。
C++ MFC
用面向对象观点重组API1、API是WIN32编程的重要基础2、关于应用程序对象 3、关于框架窗口对象 4、关于视图对象 5、关于文档对象 (数据与显示分离) 6、关于其它对象的API *重点是类和对象的概念关系*
C++ MFC
7.2 MFC层次结构
C++ MFC
MFC中类的层次结构MFC是一个包含了超过200个不同类的很 庞大的类库。利用他们,开发者可以 完成许多标准的Windows编程任务, 并且可以在应用程序中加入许
多复杂 的特性。在设计思想上,MFC将面向 对象的方法与事件驱动结合得很好, 因此要理解庞大的MFC类库中的常用 类的功能,要利用面向对象的思想进 行理解和分析。
C++ MFC
MFC的优点 1、MFC对于类、类的继承、封装、 多态性、类间关系和相互作用等 应用程序特性都有具体体现,可 以使开发者高效、轻松地建立 Windows应用程序,而不受设备 限制并且由事件进行驱动。
C++ MFC
2、MFC具有良好的通用性和可 移植性,它定义了应用程序的 轮廓,并提供了用户接口的标 准实现方法,程序员所要做的 工作就是通过VC所提供的各种 工具来完成这个工作。
C++ MFC
1、根类CObjectCObject类是MFC的抽象基类(不能派 生对象),是MFC中多数类和用户自 定义类的根类,它为程序员提供了 许多公共操作和基本服务。 主要包括:对象的动态建立与删除、 序列化(即串行化)的支持、对象 诊断输出、运行时信息管理以及集 合类的兼容等。 作用是,使得MFC以及基于MFC的应用 程序更加稳固和易于调试。
C++ MFC
根类CObject的组成
C++ MFC
2、消息映射类CCmdTarget该类是CObject的子类,是MFC类库中所 有具有消息映射属性的基类,消息映射规 定了当对象接到命令消息时,应调用哪一 个函数对该消息进行处理。 由CCmdTarget派生出的主框架类包括 CView、CWinApp、CDocument、CWnd和 CframeWnd都可处理命令消息。 程序员若需要一个新类来处理消息时, 可以从CCmdTarget派生出一个新类。一般 程序员很少从CCmdTarget类中直接派生出 新类,而是从其子类CView、CWinApp来派 生
C++ MFC
消息映射类CCmdTarget组成
C++ MFC
3、窗口应用程序类CWinApp每一个使用MFC的应用程序只能包 含一个从CWinApp派生的应用程序 对象,当VC的其它全局对象被构造 时,这个对象也同时被构造,当 Windows调用WinMain()函数时,产 生的对象已经有效了。从CWinApp 实例化的应用程序对象是一个全局 变量,在程序运行中该对象可以与 其它对象相互协调。
C++ MFC
4、应用程序类CWinApp组成(1)访问CWinApp对象以及全局函数。 AfxGetApp:获得一指向CWinApp对象 的指针 AfxGetResourceHabdle: 获得一应用程 序资源的句柄。 AfxGetAppName:获得指向一个包含应 用程序名的字符串的指针。 (2)CWinApp的公共数据成员 m_pszAppName:指定应用程序的名称。 m_nCmdShow:指定窗口的显示方式。 m_pMainWnd:包含一个指针,它指向 一个应用程序的主窗口。
C++ MFC
(3)CWinApp的公共成员函数 LoadCursor:调取光标资源。 LoadStandardCursor:调取Windows 预定义光标,在windows.h中指定IDC常 量。 LoadIcon:调取一个图标资源。 LoadStandardIcon:调取Windows预 定义的图标,在windows.h中 指定IDI常量。 OpenDocumentFile:框架调用此函数 打开一个指定的
文档。
正在阅读:
第5讲 MFC 编程基础105-29
日语学习步骤讲解07-09
《细细的蓝线》影评10篇12-12
四年级作文题目及范文08-01
北京教师招聘信息网02-08
聚苯醚与SEBS及SEBS_g_MA共混物的亚微相态和流变性能05-23
文化体育和旅游局最新半年工作总结暨2022年工作规划04-04
1600HLBK-21型泵安装使用说明书 - 图文12-30
现代通信概论论文105-20
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 编程
- 基础
- MFC
- 优秀团员个人总结
- 群众路线学习个人对照检查材料
- 第5章 SQL SERVER2008高级应用
- 甘肃省武威市九年级上学期期中数学试卷
- 音乐制作必备音乐软件
- 2015元旦联欢晚会领导发言稿
- 掼蛋比赛策划方案
- 直方图(1) Word 文档
- 高一下学期英语的教学计划
- Editorial for Special Issue Internet-based Content Delivery
- 第七届英语演讲比赛策划书
- 《培根论人生》读书笔记以及感想
- 苏教版初中生物4册书目录
- 2007新东方英语词根词缀记忆大全(整理打印版最有效的背单词方法
- 粮库安全管理制度
- 庐江县志成学校语文组备课流程
- 品牌效应与品牌传播
- 2005年浙江二级建造师法规及相关知识真题【已排版,可直接打印】
- 人教版九年级化学新教材分析演讲稿
- 2015年新教师入职培训总结