Windows与MFC编程基础课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Windows与MFC编程基础课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows MFC 编程 基础 课件
- 资源描述:
-
1、WindowsWindows与与MFCMFC编程基础编程基础Windows与与MFC编程基础编程基础东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计C+开发面向对象开发Windows应用程序的两种主要方法:使用Windows API(Application Programming Interface,应用程序编程接口)函数 利用MFC(Microsoft Foundation Class,微软基础类库)类库 Windows API Windows API是是WindowsWindows系统和应用程序间的标准接口,为应用程序提供系统和应用程序间的标准接口,为应用程序提供Windo
2、wsWindows支持的函数定义、参数定义和消息格式等支持的函数定义、参数定义和消息格式等 MFC MFC类库类库包括用来开发包括用来开发C+C+应用程序和应用程序和WindowsWindows应用程序的一组类,这些类用应用程序的一组类,这些类用来表示窗口、对话框、设备上下文、公共来表示窗口、对话框、设备上下文、公共GDIGDI对象如画笔、调色板、控制框和其对象如画笔、调色板、控制框和其它标准的它标准的WindowsWindows部件,封装了大部分的部件,封装了大部分的Windows APIWindows API函数函数 应用程序应用程序 操作系统操作系统 输入输出设备输入输出设备 消息队列消
3、息队列 应用程序、操作系统、计算机硬件之间的互关系应用程序、操作系统、计算机硬件之间的互关系 操作系统能够操纵输出设备,以执行特定的功能,如让声卡发出声音,让显卡画出图形。操作系统能够感知输入设备状态的变化,如鼠标移动,键盘按下,并且能够知道鼠标移动的具体位置,键盘按下的哪个字符表示应用程序可以通知操作系统执行某个具体的动作操作系统能够将输入设备的变化上传给应用程序操作系统能够将输入设备的变化上传给应用程序东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计Windows消息传递消息传递东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计 消息是一种报告有关事件发生的通
4、知,类似于DOS下的用户输入,Windows应用程序是由消息驱动的,编写消息处理函数是Windows编程的主要工作之一消息的类型输入消息用户消息控制消息系统消息Windows事件驱动事件驱动东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计 Windows系统使用事件驱动的编程模式。事件用来标识发生的某件事情,主要采用以下三种方式产生:(1)通过输入设备,如键盘和鼠标。(2)通过屏幕上的可视对象,如菜单、工具栏按钮、滚动条和对话框上的控件。(3)来自Windows内部。Windows消息传递消息传递东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计Windows消息
5、是在Windows文件中用宏定义的常数。消息常数名通常以WM开头,格式为WM_XXX。在winuser.h中,消息结构的定义如下:typedef struct tagMSG HWND hWnd;/指定消息发送的窗口句柄UINT message;/标识消息的消息值WPARAM wParam;/消息参数LPARAM lParam;/消息参数DWORDtime;/消息进入队列的时间POINTpt;/消息进入队列时鼠标指针的屏幕坐标MSG,*PMSG,NEAR*NPMSG,FAR*LPMSG;Windows句柄句柄东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计是Windows编程的一
6、个关键性的概念,编写Windows应用程序总是要和各种句柄打交道。所谓句柄,就是一个唯一的整数值,是一个4字节长的数值,用以标识许多不同的对象类型,如窗口、菜单、内存、画笔、画刷和文件等。由于Windows是一个多任务操作系统,它可以同时运行多个程序或一个程序的多个副本。Windows不仅使用句柄来管理实例,也用它来管理窗口、位图、字体、元文件和图标等系统资源。Windows程序的结构程序的结构东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计告诉操作系统该程序需要的窗口的种类创建程序窗口初始化程序窗口获得属于该程序的Windows消息Windows消息处理的基本流程消息处理的基
7、本流程东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计MFC简介简介东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计MFCMFC还很好地保持了程序的向下兼容性还很好地保持了程序的向下兼容性是用来编写是用来编写WindowsWindows应用应用程序的程序的C+C+类类集集以层次结构组织以层次结构组织封装了大部分封装了大部分APIAPI函数函数提供了提供了图形环境图形环境下应用程序的框架下应用程序的框架提供了创建应用程序的组件提供了创建应用程序的组件提供了大量的基类供程序员根据不同的应用环境进行扩充提供了大量的基类供程序员根据不同的应用环境进行扩充允许在编程过程中
8、自定义和扩展应用程序中的类允许在编程过程中自定义和扩展应用程序中的类较好的移植性,较好的移植性,可移植于众多的平台可移植于众多的平台MFC简介MFC体系结构体系结构东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计宏全局函数类MFC体系结构体系结构 类是MFC中最主要的内容。MFC类是以层次结构方式组织起来的。MFC中的类分成两部分,一部分是辅助类,一类是直接或间接从Cobject继承而来的来的类 MFC宏主要功能:消息映射、运行时对象类型服务、诊断服务、异常处理。全局函数以“Afx”为前缀,全局变量以“afx”为前缀。可以被应用程序中的所有类和函数所调用。如AfxAbort()
9、,无条件终止一个应用程序的执行;MFC基本层次结构图基本层次结构图东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CMDIChildWndCMDIFrameWndCMiniFrameWnd MFC应用程序的类型应用程序的类型东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计单文档多文档基于对话框 单文档界面应用程序简称SDI,只允许一个框架窗口存在,每次只能创建和拥有一个文档对象,也只允
10、许打开一个文档 程序执行时允许打开多个MDI子框架窗口,拥有各自的文档和视图对象,在打开的多个子窗口中,只有一个活动窗口,应用程序菜单和工具栏的所有的命令都是针对活动窗口的 基于对话框的应用,它包含一个CWinApp对象和 一个模拟的对话框,对话框负责数据的存储和显示MFC应用程序创建应用程序创建东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计向导类向导类集成开发环境集成开发环境应用程序向导应用程序向导资源编辑器资源编辑器Create.DEF.CPP.H.DSW.DSP.ICC.RC.BMP源文件源文件资源文件资源文件编译编译.objBuild资源编译资源编译.res应用程序应
11、用程序创建过程的5个核心类:CWinApp,Cdocument,CView,CFrameWnd,CDocTemplate东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计MFC应用程序创建应用程序创建1.构造全局对象构造全局对象CWinApp派生类对象派生类对象2.调用调用CHelloApp的虚函数的虚函数InitInstance东南大学软件学院东南大学软件学院(苏州苏州)C+程序设计程序设计MFC应用程序创建应用程序创建 3.回到回到WinMain中,调用中,调用pApp-Run,进入消息循环,通过,进入消息循环,通过API函数函数GetMessage获得消息,获得消息,Tra
12、nslateMessage处理消息,处理消息,ispatchMessage派送消息到派送消息到CWnd:DefWindowProc,DefWindowProc按照消息映射表按照消息映射表的定义将消息分发到各相应消息处理函数;如消息队列为空,则的定义将消息分发到各相应消息处理函数;如消息队列为空,则Run调用调用CWinApp:OnIdle进行空闲处理,重载进行空闲处理,重载OnIdle可以去处理后台程序可以去处理后台程序(低优低优先级先级);4.若用户选择菜单若用户选择菜单File/Close,则程序收到,则程序收到WM_COLSE消息,调消息,调用用:DestroyWindow发出发出WM_
展开阅读全文