发信人: wql.bbs@bbs.swjtu.edu.cn (晖), 信区: cnprogram
标  题: 面向对象化程序设计中的消息驱动机制(五)
发信站: 锦城驿站 (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]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.067毫秒