Programming 版 (精华区)
发信人: zxg (排在队伍后面的人), 信区: Programming
标 题: 面向对象化程序设计中的消息驱动机制(五)
发信站: 哈工大紫丁香 (Wed Aug 4 08:32:05 1999), 转信
发信站: 锦城驿站 (Thu Jun 26 04:22:49 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!swjtunews!swjtubbs
出 处: xnjd21.swjtu.edu.cn
键盘消息由自编中断1cH例程取回,每1/18.2秒该例程调用一次。 若
发现BIOS键盘缓冲区内有键待取,无论是功能键还是字符键,都在例程中
转成可唯一标识的代码;如果检测到的键码为汉字码,则取回一个完整的
汉字。同时,当前的Ctrl,Alt等功能键状态也一起被存进消息结构,插入
消息队列。
对象消息源是一个随时可调用的函数。调用时将必要的信息填入消息
数据结构后,以参数形式代入该函数并调用之,对象消息即被发至消息队
列。根据当前的需要,可发至队列的队首或队尾。
⑶ 消息源的扩充
因为面向对象程序具有良好的可扩充性, 消息内容也应当具备可扩充
性。理想的方案之一是将来自不同消息源的消息能够方便、实时地追加或
插入已有的消息队列,并且消息源可以随时增加或删除。同上述三种消息
一样,每个消息源对应一个插入消息的可重载函数(InsertMessage(...))。
例如,若对上面提及的开发平台扩充硬件消息,可对硬件中断的保留中断
号编程。使中断例程作为一个消息源,向消息队列插入硬件中断消息,即
实现了消息内容的扩充。
下表附上 AT 微机的所有硬件中断:
(表略)
四、消息分发
在消息驱动机制中,消息的分发过程要对整个进程通盘考虑,实现方
案最为重要而繁杂。但又因具体的软件功能及要求不同而异,甚至在细节
上大相径庭,无太多规律可循。这里只简单提及我们在开发过程中所注意
的要点:
① 从队列中取出的消息对于推进进程而言并不一定完整。 在本阶段
要对消息内容恰当地补充或细化。
--
※ 来源:.锦城驿站 bbs.swjtu.edu.cn.[FROM: 202.115.65.102]
※ 修改:.zxg 于 Aug 4 08:32:05 修改本文.[FROM: sys03.hit.edu.cn]
--
※ 转寄:.紫 丁 香 bbs.hit.edu.cn.[FROM: sys03.hit.edu.cn]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: zxg.bbs@bbs.hit.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.091毫秒