事件驱动 一般地说,程序执行的进程是由某种机制驱 动进行的。目前可以把程序执行进程的驱动 分为两种类型: 1)过程驱动 2)事件驱动
事件驱动 ❖ 一般地说,程序执行的进程是由某种机制驱 动进行的。目前可以把程序执行进程的驱动 分为两种类型: ❖ 1)过程驱动 ❖ 2)事件驱动
过程驱动 采用过程驱动的程序一般由一系列的函数或 过程组成。这些函数或过程具有预定的初始 化、中间处理和输出序列,以此控制程序的 基本流程。由于这些序列是预定的,因此它 具有面向系统性和主动性,在程序的执行过 程中,用户的干预空间较小
过程驱动 ❖ 采用过程驱动的程序一般由一系列的函数或 过程组成。这些函数或过程具有预定的初始 化、中间处理和输出序列,以此控制程序的 基本流程。由于这些序列是预定的,因此它 具有面向系统性和主动性,在程序的执行过 程中,用户的干预空间较小
事件驱动 采用事件驱动的程序不给程序预先规定一个 执行顺序,程序一旦启动,就处于等待状态, 等待某种事件的发生;只要有用户输入事件 发生,它就立刻接收事件并做出响应;处理 完毕又立刻返回等待下一个事件的发生。这 种循环等待方式,具有面向用户性和被动性, 可以给用户提供较大的干预空间,让用户以 各种合理的和可能的顺序来安排程序的流程, 特别适合交互性强的程序
事件驱动 ❖ 采用事件驱动的程序不给程序预先规定一个 执行顺序,程序一旦启动,就处于等待状态, 等待某种事件的发生;只要有用户输入事件 发生,它就立刻接收事件并做出响应;处理 完毕又立刻返回等待下一个事件的发生。这 种循环等待方式,具有面向用户性和被动性, 可以给用户提供较大的干预空间,让用户以 各种合理的和可能的顺序来安排程序的流程, 特别适合交互性强的程序
消息与消息循环 Windows是一个多任务的操作系统环境。在这个平 台上,多个程序所以能有秩序地交织运行,就在于 它采用了“消息传送”( Message Passing)机制 消息处理是 Windows应用程序的核心。所有的 Windows应用程序都是消息驱动的。在 Windows环 境下,所有的外部输入都被系统先拦截,转换成消 息之后,再传送给程序中的目标。目标系统再根据 消息的具体内容进行相应的处理
消息与消息循环 ❖ Windows是一个多任务的操作系统环境。在这个平 台上,多个程序所以能有秩序地交织运行,就在于 它采用了“消息传送”(Message Passing)机制 ❖ 消息处理是Windows应用程序的核心。所有的 Windows应用程序都是消息驱动的。在Windows环 境下,所有的外部输入都被系统先拦截,转换成消 息之后,再传送给程序中的目标。目标系统再根据 消息的具体内容进行相应的处理
Windows消息机制 应用程序1 Win Maino 系统消息 应用程厅队勿7k、检索消 消息 消 数 应用程序n 检索消 WinMail 网用程队列爱速意消思循环 Indows 函数1 数
Windows消息机制 应用程序1 消息循环 WinMain() 窗口 函数1 窗口 … 函数m 应用程序队列1 应用程序n 消息循环 WinMain() 窗口 函数1 窗口 … 函数m 应用程序队列n … … 系统消息队 列 Windows 事件发生 检索消息 发送消息 检索消息 发送消息