windows程序设计与MFC基础

上传人:创****公 文档编号:132384623 上传时间:2020-05-15 格式:PPT 页数:28 大小:1.18MB
返回 下载 相关 举报
windows程序设计与MFC基础_第1页
第1页 / 共28页
windows程序设计与MFC基础_第2页
第2页 / 共28页
windows程序设计与MFC基础_第3页
第3页 / 共28页
windows程序设计与MFC基础_第4页
第4页 / 共28页
windows程序设计与MFC基础_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《windows程序设计与MFC基础》由会员分享,可在线阅读,更多相关《windows程序设计与MFC基础(28页珍藏版)》请在金锄头文库上搜索。

1、windows程序设计与MFC基础 高级语言程序设计与实践 windows程序设计与MFC基础 使用C 开发面向界面的应用程序的主要方法有两个 1 使用应用程序编程接口 WindowsAPI 2 使用MFC Windows编程WindowsAPI编程是一种原始的开发Windows应用程序模式 其地位大致相当于字符界面环境下C语言的标准库函数 只不过其运行环境为Windows的图形界面环境 Windows程序构成程序代码UI资源 rc文件 功能菜单对话框外貌图标光标形状 Windows程序的开发流程 1Windows编程 1 0基本框架比较 WinMain v s main 1 1windows

2、核心 三个动态链接库 Windows操作系统核心有三个动态链接库 Kernel32 dll User32 dll Gdi32 dll 这些动态链接库构成了Win32API函数 1 Windows内核库 Kernel32 dll 内核库中的函数用于处理操作系统功能的所有核心工作 例如多任务管理 内存管理等 另外内核库还管理系统注册表 2 Windows用户界面管理库 User32 dll 用户界面管理库包括了Windows管理 菜单 光标 定时器和通信等有关的函数 在Windows中 窗口的标识被称为 句柄 3 Windows图形设备界面库 Gdi32 dll 图形设备界面库提供了用于管理系统支

3、持的所有图形设备函数 包括屏幕 打印机等设备的管理 GDI库中的函数为应用程序提供与设备无关的绘图内容 应用程序中通过GDI库中的函数绘图 不是直接面向硬件操作 而是通过 设备描述表 来进行操作 它通过句柄hDC来跟踪 include windows h Win应用程序利用格式化的Windows消息与其它Windows应用程序及Windows系统进行通讯 可以使用GetMessage 函数来获取消息 然后利用DispatchMessage 函数发送消息 最后由窗口函数来进行消息的处理 消息驱动 又称为事件驱动 在执行过程中 如果用户需要输入什么参数或用户需要作出选择 程序将等待用户的输入 只有

4、用户提供了足够的数据程序才能继续进行下去 否则它将一直等待下去 应用程序不会自己选择其它的途径或完成其它的功能 用户也不能干预程序的运行过程 1 2windows运行机制 消息驱动机制 标准Windows消息 以WM 前缀 但不包括WM COMMAND 开始的消息 包括鼠标消息 键盘消息和窗口消息 如WM MOVE WM PAINT等 控件通知 ControlNotification 消息 对控件操作引起的消息 是控件和子窗口向其父窗口发出的WM COMMAND通知消息 例如 当用户修改了编辑控件中的文本后 编辑控件向其父窗口发送WM COMMAND通知消息 命令 Command 消息 由菜单

5、项 工具栏按钮 快捷键等用户界面对象发出的WM COMMAND消息 命令消息与其它消息不同 它可被更广泛的的对象如文档 文档模板 应用程序对象 窗口和视图等处理 1 2windows运行机制 消息驱动机制 typedefstructtagMSG HWNDhWnd 目标窗口句柄UINTmessage 消息标识WPARAMwParam 消息参数1 附加信息 16位 LPARAMlParam 消息参数2 附加信息 32位 DWORDtime 消息发送时间POINTpt 消息发送时鼠标的屏幕坐标 MSG 1 2windows运行机制 消息驱动机制 Windows程序本体与操作系统之间的关系 1 2wi

6、ndows运行机制 消息驱动机制 1 2windows运行机制 消息驱动机制 RegisterClass和CreateWindow 1 2windows运行机制 消息驱动机制 WinMain函数中窗口的创建代码 简化 1 2windows运行机制 消息驱动机制 1 2windows运行机制 消息驱动机制 Windows程序设计是消息驱动的 消息传递是它的核心 而消息管理是由Windows完成的 应用程序要获得消息就要从操作系统中获得 应用程序有两种获得消息的方式 回调函数一经设计好 就成了Windows系统的扩展 就会在发生别的事件时 由操作系统自动调用该回调函数 在应用程序的任何地方找不到明

7、显调用该函数的地方 用DOS编程观点来看 似乎此函数并没有用到 事实上回调函数不仅用到了 而且起了很大作用 正是通过它 应用程序才获得了消息 才知道当前发生了什么事件 才根据不同的事件采取不同的处理措施 1 应用程序调用Windows提供的获取消息函数 如GetMessage 2 由Windows调用程序员提供的一种特殊函数 回调函数 Windows程序的全生命周期过程 Windows程序WinMain函数消息循环窗口函数 1 2windows运行机制 消息驱动机制 1 3windows程序的入口及结构 Callbackwindowproc CreateWindow MyRegisterCla

8、ss WinMain GetmessageandDispatchmessage CreatewindowAnddisplay Registerwindowclass Entrypoint 1 3windows程序的入口及结构 1 3windows程序的入口及结构 1 3windows程序的入口及结构 intAPIENTRYWinMain HINSTANCEhInstance HINSTANCEhPrevInstance LPSTRlpCmdLine intnCmdShow MyRegisterClass hInstance Performapplicationinitialization if

9、 InitInstance hInstance nCmdShow returnFALSE Mainmessageloop while GetMessage 1 4windows基本数据类型 1 5windows特殊类型 句柄 Windows环境中 句柄可以用来标识各种东西 包括 实例 文件 菜单 控件 字体 资源 包括图标 光标 字符串 GDI对象 包括位图 画刷 元文件 调色板 画笔 区域 以及设备描述表 Windows程序并不是用物理地址来标识一个内存块 文件 任务或动态装入模块的 相反 WindowsAPI给这些项目分配确定的句柄 并将句柄返回给应用程序 然后通过句柄来进行操作 句柄是W

10、indows用来标识被应用程序所建立或使用的对象的唯一整数 win32的编程可以归结为一句话 创建或接受句柄 然后操作句柄 1 5windows特殊类型 常用句柄 2 1MFC概述 MFC是MicrosoftFoundationClass 微软基础类 的缩写 从物理角度看 它是一个庞大的类库 包含可控制计算机系统方方面面的类库 它对应的是Windows系统目录下的一系列mfc dll文件 从逻辑角度看 它是一个面向对象的应用程序框架 程序员可以使用这一框架创建Windows应用程序 建立MFC库的目的是为了简化Windows应用程序的编制 MFC开发小组的工作是将此目的和程序设计原理结合起来

11、2MFC编程基础 2 2MFC类的层次结构 2 3MFC类的应用程序框架 尽管每个应用程序具体实现的功能不同 但同一类程序的基本结构是相同的 因此 通常采用MFCAppWizard创建一个MFC应用程序框架 MFC不仅仅是一个类库 它还提供了一层建立在MFC类对象封装上的附加应用程序框架 应用程序框架是为了生成一般的应用程序所必需的各种软组件的集成 是类库的一种超集 类库只是一种可以嵌入到任何程序中的 提供某些特定功能的类的集合 而应用程序框架却定制了应用程序的结构和源代码 其中的类对象既相互独立 又相互作用 形成一个统一的整体MFC就是一种应用程序架构 2 3MFC类的应用程序框架 2 4C

12、lassWizad类管理器 ClassWizard也是一个代码框架生成工具 可以规范地生成用户想要的代码框架 在代码框架中指定好了用户可以添加代码的位置 当用AppWizard生成一个Win32的应用程序框架后 就可以使用ClassWizard为程序添加你想要的代码框架了 课程作业 两人为一组 设计一个基于MFC的程序 小软件 编程要求 程序功能 任选 程序框架类型 SDI MDI或Dialog based 选择其一 应包含以下编程技术 至少 鼠标响应 控件操作 动画显示 完成要求 开发报告 程序演示 报告 需求分析 概要设计 部分 5月15日前完成日期 学期内 待商定 简化版 软件开发报告 应包括以下内容 需求分析 概要设计 详细设计 软件使用说明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号