第2讲 Windows应用程序基础
1 第2讲 Windows 应用程序基础
Windows编程基础 程序调试工具 可选择并构成具体 资源管理器 包括源程序语 语句或源程序结构 包括图形化窗 法检查、可执 行程序修改和 的例程库及Hep 口及组成元素 的多种对象的 运行监视等 编辑器 可视化开发 系统集成了一系 列系统可用资源 和开发工具 应用程序Help 系统函数库和 和 Setup开发 源程序编辑 系统函数开发 工具包 器和编译器 工具
2 程序调试工具 包括源程序语 法检查、可执 行程序修改和 运行监视等 应用程序Help 和Setup开发 工具包 系统函数库和 系统函数开发 工具 资源管理器 包括图形化窗 口及组成元素 的多种对象的 编辑器 可选择并构成具体 语句或源程序结构 的例程库及Help 源程序编辑 器和编译器 可视化开发 系统集成了一系 列系统可用资源 和开发工具 一、Windows编程基础
Windows的 VC VB 都是“面向对象” 程序设计语言 VJ 的程序设计语言 编写 Windows 对象是 Windows菜单 程序相当一部分工 的规范部件 按钮 对话框 作是在创建对象和 程序模块 为对象属性赋值 对象特征:具有规范形态和操作模式 编程方法传统编写法→API 交互式方法>MFC 采用交互式方法时,可视化开发平台给出了许多选用的对象,程序员 可选择所需对象并确定其属性,由此搭建起应用程序的“大框架” 并可根据需要进一步编写必要的细节代码段,最后构成完整的应用程
3 采用交互式方法时,可视化开发平台给出了许多选用的对象,程序员 可选择所需对象并确定其属性,由此搭建起应用程序的“大框架”, 并可根据需要进一步编写必要的细节代码段,最后构成完整的应用程 序 Windows的 程序设计语言 VC VB VJ 都是“面向对象” 的程序设计语言 对象是Windows 的规范部件 窗口 菜单 按钮 对话框 程序模块 编写Windows 程序相当一部分工 作是在创建对象和 为对象属性赋值 对象特征:具有规范形态和操作模式 编程方法 传统编写法-->API 交互式方法-->MFC
为应用程序提 窗口管理函数 供 Windows系 实现窗口的创 统特殊函数及 建、移动和修 数据结构 改功能 Wi应用程序 可以利用标准 API函数 系统服务函数 大量API函数 API 的功能 实现与操作 调用系统功能 系统有关的多 种功能 是Win系统与 图形设备(GDD Win应用程序 函数:实现与 间的标准程序 设备无关的图 接口 形操作功能
4 API API函数 的功能 为应用程序 提 供Windows 系 统特殊函数 及 数据结构 Win应用程序 可以利用标准 大量API函数 调用系统功能 是Win系统与 Win应用程序 间的标准程序 接口 窗口管理函数 实现窗口的创 建、移动和修 改功能 系统服务函数 :实现与操作 系统有关的多 种功能 图形设备 (GDI) 函数:实现与 设备无关的图 形操作功能
利用 WindOws apt函数编写 Windows应用程序必 须首先了解以下内容: (1)窗口的概念 (2)事件驱动的概念 (3)句柄 (4)消息
5 利用Windows API函数编写Windows应用程序必 须首先了解以下内容: (1)窗口的概念 (2)事件驱动的概念 (3)句柄 (4)消息
(1)窗 个应用程序的窗口一般包含下列成分: a Microsoft PowerPoint 控制菜单框 文件①)编辑〕视图Q插入〔)格式)工具〔 E巴最大化按钮 幻灯片放映①)窗口)帮助0 下拉菜单 ‖回新建窗 全部重排 最小化按钮 缩至一页①) B/ U s 中vP0K层叠() □口 标题栏 V 1 VC PPt 02 OK 窗口 窗口足Wos应用程序基本的操作单元,足应用程序与用户之 间文的楼口环境.出足系翁智理用字的基本单位。绗写 工作区 个wdws应用程序首光应创建一个或多个窗口,随后应用程 序的运行过程即足窗口内部、窗口与窗口之间、窗口与统之间 进行锯处理与兼锯文换的过程。 一个应用程序的窗口一包含下列成分 最大化按银 控南学下 最 题栏下 垂直滚动条 窗口边界 工作区 B 回品品早 水平滚动条 绘图③)·tc自选图形0,、口○国圖 幻灯片6/37 空演示文稿
6 (1) 窗口 一个应用程序的窗口一般包含下列成分: 窗口边界 工作区 控制菜单框 下拉菜单 水平滚动条 垂直滚动条 最大化按钮 最小化按钮 标题栏
a Microsoft PowerPoint 口K 文件①)编辑①)视图α)插入①)格式⑩)工具①) 系统管理 幻灯片放映①)窗口)帮助Q 口c回a新建窗口 应用程序 K C 全部重排( 的基本单位 应用程 缩至一页① 百vFPt020K层叠c) 序与用 口区 1 VC PPt 02 OK 户之间 窗口 窗口足wo用程序基本的燥作单元,足应用程序与用户之 交互的 间红的核,用序首先应创建一个我多个窗口,随后应用程 也足系线理应用序的基本单位。编写 序的运行过程即足窗口内部、窗口与窗口之间、窗口与系统之同 接口环 进行锯处理与兼锯文换的过程 个应用程序的窗口一包含下列成分 境 控制菜学 最大化按银 控学 最小化按银 工怍区 垂直动条 窗口垃界 Win应用程序 水平的条 基本的操作单元 品可 绘图B)-6自选图形Q 幻灯片6/3 空演示文稿 编写一个 Windows应用程序首先应创建一个或多个窗口,随后应用 程序的运行过程即是窗口内部、窗口与窗口之间、窗口与系统之间 进行数据处理与数据交换的过程
7 编写一个Windows应用程序首先应创建一个或多个窗口,随后应用 程序的运行过程即是窗口内部、窗口与窗口之间、窗口与系统之间 进行数据处理与数据交换的过程。 应用程 序与用 户之间 交互的 接口环 境 系统管理 应用程序 的基本单位 Win应用程序 基本的操作单元
(2)事件驱动 消息是描述事 件发生的信息 (如按下鼠标或键盘) Windows程序设计是针对事件或消息的处理进行 Windowst程序的执行顺序取决于事件发生的顺序,程序的 执行顺序是由顺序产生的消息驱动的,但是消息的产生往 往并不要求有次序之分。 事件驱动编程方法对于编写交互式程序很有用处,它避免 了死板的操作模式
8 Windows程序设计是针对事件或消息的处理进行 消息是描述事 件发生的信息 (如按下鼠标或键盘) 事件驱动编程方法对于编写交互式程序很有用处,它避免 了死板的操作模式 Windows程序的执行顺序取决于事件发生的顺序,程序的 执行顺序是由顺序产生的消息驱动的,但是消息的产生往 往并不要求有次序之分。 (2)事件驱动
(3)句柄 句柄是一个4字节长的数值,用于标识应 窗口 用程序中不同的对象和同类对象中不同的 按钮 实例 图标 滚动条 应用程序通过 输出设备 句柄访问相应 控制 的对象信息 文件 常用句柄类型及其说明 HWND 窗口句柄 HDC 设备环境句柄 HBITMAP位图句柄 HCURSOR光标句柄 HICON 图标句柄 HFONT 字体句柄 HMENU 菜单句柄 HPEN 画笔句柄 HFILE 文件句柄 HBRUSH画刷句柄 HINSTANCE当前实例句柄
9 常用句柄类型及其说明 句柄是一个4字节长的数值,用于标识应 用程序中不同的对象和同类对象中不同的 实例 窗口 按钮 图标 滚动条 输出设备 控制 文件 (3) 句柄 应用程序通过 句柄访问相应 的对象信息 HWND 窗口句柄 HDC 设备环境句柄 HBITMAP 位图句柄 HCURSOR 光标句柄 HICON 图标句柄 HFONT 字体句柄 HMENU 菜单句柄 HPEN 画笔句柄 HFILE 文件句柄 HBRUSH 画刷句柄 HINSTANCE 当前实例句柄
(4)消息 Windows应用程序利用 Windows消息 (Mese与应用程序及系统进行信息交换。 消息号:由事先定义好的消息名标识 附加信息与具体 消字参数( wParam:用于提供消息的班加消息号的值有关, 息B信息 在win中消息用 长字参数 Param):用于提供消息的附结构体MSG表示 加信息 typedef struct tagMSG HWND hwnd;窗口句柄,为mu,则可检索所有驻留在消息队列中的消息 UINT message;消息值,由 Windows. h头文件中的宏定义来标识 WPARAM wParam;包含有关消息的附加信息不同消息其值有所不同 LPARAM Param dWoRD time;指定消息送至队列的时间 typedef struct tagPOINT [LONG x P0|NTpt;指定消息发送时屏幕光标的位置,其数据类型LoNy; I MSG I POINT
10 Windows应用程序利用Windows消息 (Message)与应用程序及系统进行信息交换。 typedef struct tagMSG {HWND hwnd; 窗口句柄,为null,则可检索所有驻留在消息队列中的消息 UINT message;消息值,由Windows.h头文件中的宏定义来标识 WPARAM wParam; 包含有关消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至队列的时间 POINT pt;指定消息发送时屏幕光标的位置, 其数据类型POINT也是一个结构体 }MSG; 消息号:由事先定义好的消息名标识 字参数(wParam) :用于提供消息的附加 信息 长字参数(lParam) :用于提供消息的附 加信息 消 息 附加信息与具体 消息号的值有关, 在Win中消息用 结构体MSG表示 typedef struct tagPOINT {LONG x; LONG y; } POINT; (4) 消息