鼠标的操作是使用dos中断功能

上传人:子 文档编号:43976300 上传时间:2018-06-07 格式:DOC 页数:20 大小:63.50KB
返回 下载 相关 举报
鼠标的操作是使用dos中断功能_第1页
第1页 / 共20页
鼠标的操作是使用dos中断功能_第2页
第2页 / 共20页
鼠标的操作是使用dos中断功能_第3页
第3页 / 共20页
鼠标的操作是使用dos中断功能_第4页
第4页 / 共20页
鼠标的操作是使用dos中断功能_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《鼠标的操作是使用dos中断功能》由会员分享,可在线阅读,更多相关《鼠标的操作是使用dos中断功能(20页珍藏版)》请在金锄头文库上搜索。

1、鼠标的操作是使用鼠标的操作是使用 dosdos 中断功能中断功能/*鼠标的操作是使用 dos 中断功能,中断号:33h下面给几个操作鼠标的示例,后面有更详细的中断功能说明及代码。显示鼠标:union REGS regs; regs.x.ax=1; int86(0x33,检查是否被按下: union REGS regs; regs.x.ax=6; int86(0x33, 返回值在 bx 寄存器中; 在实际编程中一般要使用循环不断的检验是否被按下!检验鼠标位置:union REGS regs; regs.x.ax=3; int86(0x33, 返回值:x 坐标在 regs.h.cx y 坐标在 r

2、egs.h.dx*/*下面是各值对鼠标的设置功能(1)、功能 00H功能描述: 初始化鼠标,该操作只需要执行一次 入口参数: AX00H 出口参数: AX0000H不支持鼠标功能,FFFFH支持鼠标功能BX鼠标按钮个数(在支持鼠标功能时)在支持鼠标功能的情况下,鼠标还被设置如下参数: 1、 鼠标指针放在屏幕中央 2、 如果当前鼠标指针是显示的,则操作后,鼠标指针被隐藏 3、 鼠标指针的显示页为 0 4、 根据屏幕的显示模式显示鼠标指针:文本反向显示矩形块,图形尖头形状 5、 水平象素比8:8,垂直象素比16:8 6、 设置水平和垂直的显示边界为当前显示模式的最大边界 7、 允许光笔仿真 8、

3、双速门槛值64(2)、功能 01H功能描述: 显示鼠标指针,通常在鼠标初始化后,用此功能显示其指针 入口参数: AX01H 出口参数: 无(3)、功能 02H功能描述: 隐藏鼠标指针,一般在程序结束时,调用此功能 入口参数: AX02H 出口参数: 无(4)、功能 03H功能描述: 读取鼠标位置及其按钮状态 入口参数: AX03H 出口参数: BX按键状态: 位 0=1按下左键 位 1=1按下右键 位 2=1按下中键 其它位保留,内部使用 CX水平位置 DX垂直位置(5)、功能 04H功能描述: 设置鼠标指针位置 入口参数: AX04H,CX水平位置,DX垂直位置 出口参数: 无(6)、功能

4、05H功能描述: 读取鼠标按键信息 入口参数: AX05H,BX指定的按键:0左键,1右键,2中键 出口参数: AX按键状态,参见功能 3H 中 BX 的说明BX按键次数CX水平位置(最后按键时)DX垂直位置(最后按键时)(7)、功能 06H功能描述: 读取鼠标按钮释放信息 入口参数: AX06H,BX指定的按键:0左键,1右键,2中键 出口参数: AX按键状态,参见功能 3H 中 BX 的说明BX释放的次数CX水平位置(最后释放时)DX垂直位置(最后释放时)(8)、功能 07H功能描述: 设置鼠标水平边界 入口参数: AX07HCX最小水平位置DX最大水平位置 出口参数: 无,鼠标有可能因新

5、区域变小而自动移进新区域内(9)、功能 08H功能描述: 设置鼠标垂直边界 入口参数: AX08HCX最小垂直位置DX最大垂直位置 出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内(10)、功能 09H功能描述: 设置图形鼠标形状 入口参数: AX09HBX指针的水平位置CX指针的垂直位置ES:DX1616 位光标的映象地址 参数说明: (BX,CX)是鼠标的指针在 1616 点阵中的位置,(0,0)是左上角;ES:DX 指向的存储单元内存放 1616 点阵的位映象隐码,紧跟其后的是 1616 点阵的光标掩码。 鼠标指针的显示方法: 位映象隐码“逻辑与”上屏幕显示区的内容,然后再用光标

6、掩码内容“异或”前面运算的结果。出口参数: 无*/*(11)、功能 0AH功能描述: 设置本文鼠标形状 入口参数: AX0AH BX光标类型: 0 CX 和 DX 的各位含义如下: 位 70 鼠标指针符号 位 108 字符前景色 位 11 亮度 位 1412 字符背景色 位 15 闪烁1 CX光标的起始扫描线 DX光标的结束扫描线出口参数: 无(12)、功能 0BH功能描述: 读取鼠标移动计数 入口参数: AX0BH 出口参数: CX水平移动距离:正数向右移,负数向左移 DX垂直移动距离:正数向下移,负数向上移(13)、功能 0CH功能描述: 为鼠标事件设置处理程序 入口参数: AX0CH C

7、X中断掩码 位 01 鼠标指针位置发送变化 位 11 按下左按钮 位 21 释放左按钮 位 31 按下右按钮 位 41 释放右按钮 位 51 按下中间按钮 位 61 释放中间按钮 位 7150 保留ES:DX中断处理程序的地址在进入中断处理程序时,有关寄存器的值含义: AX中断掩码 BX按键状态 CX鼠标指针的水平位置 DX鼠标指针的垂直位置 SI水平位置的变化量 DI垂直位置的变化量出口参数: 无(14)、功能 0DH功能描述: 允许光笔仿真 入口参数: AX0DH 出口参数: 无(15)、功能 0EH功能描述: 关闭光笔仿真 入口参数: AX0EH 出口参数: 无(16)、功能 0FH功能

8、描述: 设置鼠标计数与象素比 入口参数: AX0FH CX水平比例 DX垂直比例 出口参数: 无(17)、功能 10H功能描述: 设置鼠标指针隐藏区域 入口参数: AX10H CX左上角 X 坐标 DX左上角 Y 坐标 SI右下角 X 坐标 DI右下角 Y 坐标 出口参数: 无(18)、功能 13H功能描述: 设置倍速的阈值,其缺省值为 64 入口参数: AX13H DX阀值 出口参数: 无(19)、功能 14H功能描述: 替换鼠标事件中断 入口参数: AX14H CX中断掩码 ES:DX中断处理程序的地址 出口参数: CX旧的中断掩码 ES:DX旧的中断处理程序地址(20)、功能 15H功能

9、描述: 读取鼠标驱动器状态的缓冲区大小 入口参数: AX15H 出口参数: BX存放鼠标驱动器状态所需缓冲区的大小(21)、功能 16H 功能描述: 存储鼠标驱动器状态 入口参数: AX16H ES:DX存储鼠标驱动器状态的地址 出口参数: 无(22)、功能 17H功能描述: 重装鼠标驱动器状态 入口参数: AX17H ES:DX鼠标驱动器状态的地址 出口参数: 无(23)、功能 18H功能描述: 为鼠标事件设置可选的处理程序 入口参数: AX18H CX替换中断掩码 ES:DX替换中断处理程序的地址 CF0 出口参数: 无*/*(24)、功能 19H功能描述: 读取替换处理程序的地址 入口参

10、数: AX19HCX替换中断掩码 出口参数: 若 AX-1不成功,否则,ES:DX中断处理程序的地址(25)、功能 1AH功能描述: 设置鼠标的灵敏度,其取值 1100 入口参数: AX1AHBX水平灵敏度(每 8 个象素鼠标需要移动的数量,一般为 8)CX垂直灵敏度(每 8 个象素鼠标需要移动的数量,一般为 16)DX倍速阀值 出口参数: 无(26)、功能 1BH功能描述: 读取鼠标的灵敏度 入口参数: AX1BH 出口参数: BX水平灵敏度CX垂直灵敏度DX倍速阀值(27)、功能 1CH功能描述: 设置鼠标中断速率 入口参数: AX1CHBX每秒钟中断的次数:0关中断,130/S,250/

11、S,3100/S,4200/S 出口参数: 无(28)、功能 1DH功能描述: 为鼠标指针选择显示页 入口参数: AX1DHBX显示页 出口参数: 无(29)、功能 1EH功能描述: 读取鼠标指针的显示页 入口参数: AX1EH 出口参数: BX显示页(30)、功能 1FH功能描述: 禁止鼠标驱动程序 入口参数: AX1FH 出口参数: 若 AX-1不成功,否则,ES:BX鼠标驱动程序的地址(31)、功能 20H功能描述: 启动鼠标驱动程序 入口参数: AX20H 出口参数: 无(32)、功能 21H功能描述: 鼠标驱动程序复位 入口参数: AX21H 出口参数: 若 AX-1不成功,否则,B

12、X2(33)、功能 22H功能描述: 设置鼠标驱动程序信息语言 入口参数: AX22HBX语言代码:0英语,1法语,2荷兰语,3德语,4瑞典语,5芬兰语,6西班牙语,7葡萄牙语,8意大利语 出口参数: 无(34)、功能 23H功能描述: 读取语种 入口参数: AX23H 出口参数: BX语言代码(35)、功能 24H功能描述: 读取鼠标信息 入口参数: AX24H 出口参数: BH主版本号,BL辅版本号CL中断请求号CH鼠标类型:1Bus Mouse,2Serial Mouse,3InPort Mouse,4PS/2 Mouse,5HP Mouse(36)、功能 25H功能描述: 读取鼠标驱动

13、程序信息 入口参数: AX25H 出口参数: AX鼠标驱动程序信息: 位 15 0: 驱动程序是.SYS 文件,否则,为.COM 文件 位 140: 不完全鼠标显示驱动程序,否则,为完全的 位 13-1200: 软件文本光标 01: 硬件文本光标 1X: 图形光标(37)、功能 26H功能描述: 读取最大有效坐标 入口参数: AX26H 出口参数: BX鼠标驱动程序状态CX最大水平坐标DX最大垂直坐标*/#include#include#include#include#include#include/*鼠标信息宏定义*/#define WAITING 0xff00#define LEFTPRE

14、SS 0xff01#define LEFTCLICK 0xff10#define LEFTDRAG 0xff19#define RIGHTPRESS 0xff02#define RIGHTCLICK 0xff20#define RIGHTDRAG 0xff2a#define MIDDLEPRESS 0xff04#define MIDDLECLICK 0xff40#define MIDDLEDRAG 0xff4c#define MOUSEMOVE 0xff08int hide1616, bury1616,mousedraw1616,pixelsave1616;/*分别定义隐码、掩码、点值*/in

15、t mousebutton,mouseexist,mouseX,mouseY;void mousepicture() /*画心形,可设置其它的图形*/int i,j,k;long hidenum16=0xe3c7,0xc183,0x8001,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0xc003,0xe007,0xf00f,0xf81f,0xfc3f,0xfe7f,0xffff, ; /*隐码点值,是对点素进行设置*/long burynum16= 0x1c38,0x3e7c,0x7ffe,0xffff,0xffff,0xffff,0xffff,0x7ffe,0x3ffe,0x3ffc,0x1ff8,0x0ff0,0x07e0,0x03c0,0x0180,0x0000,;/*掩码点值*/for(i=0;i=0;j-) hideij=hidenumi%2; hidenumi/=2; /*把隐码转化为 0-1*/ while(burynumi!=0) for(k=15;k=0;k-) buryij=burynumi%2; burynumi/=2; for(k=0;k16;k+) i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号