鼠标的操作方式

2012-04-16 17:15:25来源: 互联网

用汇编语言对鼠标的各项操作进行描述的,也可以用C、C++等其他语言来描述。
1. 初始化鼠标驱动程序:
       例如:中断号INT33h    功能16h   子功能17h 
    中断号:用于请求服务
    功能号:用于确定用户期望获取哪种服务
    子功能号:进一步指定所希望的服务
     调用寄存器:设置被调用的服务功能所要求的参数
      返回寄存器:返回服务功能执行结果
    调用的进程:设置参数      中断号INT33h       功能15h        BX寄存器          ES:DX        功能16h       功能17h        ES:DX

2.  显示或隐藏鼠标光标
中断33h的功能1和2分别置鼠标光标为“打开”和“关闭”。而鼠标驱动程序一直跟踪鼠标的移动,当鼠标移动时就更新它在屏幕的位置。
鼠标的程序从开始通常在打开光标,一直到程序结束。
鼠标驱动程序采用光标标记,用做显示和隐藏光标的分层方法。初次打开光标标记设为-1;功能1将标记加至0,使光标出现。功能2将标记减1,当标记为负值时就隐藏光标。

3.   设置文本鼠标光标的形状
在以视频文本模式工作时,鼠标驱动程序生成两类光标:
(1)硬件光标,由视频硬件所产生的常规屏幕光标,由水平扫描线组成。
(2)软件或属性光标,这种情况下,鼠标驱动程序在光标出现的屏幕位置写数据。驱动程序在改变此位置显示的字符或改变字符属性,使它闪烁、背景色等。
(3)中断33h的功能Ah设置文本光标的类型:AX存放功能号;BX存放应光标或软件光标选择;CX存放起始扫描线;DX存放终止扫描线。

4.  设置图形鼠标光标的形状

中断33h的功能9h设置图形模式下的鼠标光标的形状,并定义光标里的一个点为热点。光标由16 x 16位的视频掩码和16 x 16位的光标掩码组成。

5. 取得或设置鼠标光标的位置
中断33h的功能4h用于设置鼠标光标位置,功能3h则用于报告光标的位置。AX存放功能号,CX被赋予X坐标,DX被赋予Y坐标。P200例7-4

6.  将鼠标光标限定在屏幕的一部分
将鼠标光标可以限制在屏幕的一个矩形区域内,由中断33h的功能7h设置鼠标光标移动的水平范围,8h设置垂直范围。P201例7-5

7. 定义不显示鼠标光标的屏幕区域
中断33h的功能10h定义屏幕的一个区域,当鼠标进入该区域时会自动关掉。进入时,CX存放被保护域的左列号,SI存放右列号;DX存放首行号,DI存放末行号。
例7-6  设置一个范围是从第10~50列和5~30行之间的矩形域。
               MOV         AX ,      10h          ;功能号
                 MOV         CX ,      10            ;左列
                 MOV         S I ,       50            ;右列
                 MOV         DX ,       5             ;首行
                 MOV         D I ,       30           ;末行
                 INT           33h                       ;调用中断设置域

8. 跟踪鼠标的移动

中断33h 功能Bh报告自从上次调用该功能后,鼠标移动的实际距离(测量单位为米基)。该功能在CX中返回相对的水平位移;DX中返回相对的垂直位移。例7-7 查询鼠标光标的相对位移。
               MOV     AX ,    0Bh
               INT       33h
               MOV     HORZ_MOTION , CX
               MOV     VERT_MOTION ,  DX

9.  设置鼠标与光标移动的比率                                      
程序可以改变鼠标移动相对于鼠标光标移动的比率。大多数鼠标的分辨率为每英寸200米基。在一定方向上移动一定数目的米基,转换为鼠标光标移动一个像素。默认情况8米基使水平移动一个像素;16米基使光标垂直移动一个像素。
中断21h的功能Fh可以改变米基 – 像素的比例。
中断33h的功能13h是改变产生双倍速率的这个阀值,默认值为64米基/秒。P202例7-8

10.  监视鼠标按钮
中断33h的功能5h和6h报告鼠标按钮的信息。这两项功能都在AX返回一个按钮状态字节,报告按钮2个或3个当前状态。此状态字节由中断21h的功能3h返回。它报告鼠标光标的位置。


中断33h的功能5h和6h跟踪按下按钮和释放按钮。

11.截取单击、双击和拖动事件
许多使用鼠标的程序都要检测鼠标的单击和双击,并跟踪按钮按下的拖动事件。

12.   建立鼠标中断例程
在INT  33h的功能Ch建立列程。入口时,ES:DX指向列程CX中存放一个位模式,设定几种应当调用的例程事件。其模式为:

关键字:鼠标  操作方式

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0416/article_15707.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
鼠标
操作方式

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved