c语言鼠标操作方法及源码,C语言鼠标操作方法及源码.pdf

C语言鼠标操作方法及源码

C 语言鼠标操作方法及源码(转载)

鼠标的操作是使用dos 中断功能,中断号:33h

下面给几个操作鼠标的示例,后面有更详细的中断功能说明及代码。

显示鼠标:

union REGS regs;

regs.x.ax=1;

int86(0x33,&regs,&regs);

检查是否被按下:

union REGS regs;

regs.x.ax=6;

int86(0x33,&regs,&regs);

返回值在bx寄存器中;

在实际编程中一般要使用循环不断的检验是否被按下!

检验鼠标位置:union REGS regs;

regs.x.ax=3;

int86(0x33,&regs,&regs);

返回值:x坐标在 regs.h.cx

y坐标在 regs.h.dx

/*下面是各值对鼠标的设置功能*/

(1)、功能00H

功能描述: 初始化鼠标,该操作只需要执行一次

入口参数: AX =00H

出口参数: AX =0000H——不支持鼠标功能,FFFFH——支持鼠标功能

BX=鼠标按钮个数(在支持鼠标功能时)

在支持鼠标功能的情况下,鼠标还被设置如下参数:

1、 鼠标指针放在屏幕中央

2、 如果当前鼠标指针是显示的,则操作后,鼠标指针被隐藏

3、 鼠标指针的显示页为0

4、 根据屏幕的显示模式显示鼠标指针:文本—反向显示矩形块,图形—尖头形状

5、 水平象素比=8:8 ,垂直象素比=16:8

6、 设置水平和垂直的显示边界为当前显示模式的最大边界

7、 允许光笔仿真

8、 双速门槛值=64

(2)、功能01H

功能描述: 显示鼠标指针,通常在鼠标初始化后,用此功能显示其指针

入口参数: AX =01H

出口参数: 无

(3)、功能02H

功能描述: 隐藏鼠标指针,一般在程序结束时,调用此功能

入口参数: AX =02H

出口参数: 无

(4)、功能03H

功能描述: 读取鼠标位置及其按钮状态

入口参数: AX =03H

出口参数: BX=按键状态: 位0=1——按下左键

位1=1——按下右键

位2=1——按下中键

其它位——保留,内部使用

CX=水平位置

DX=垂直位置

(5)、功能04H

功能描述: 设置鼠标指针位置

入口参数: AX =04H ,CX=水平位置,DX=垂直位置

出口参数: 无

(6)、功能05H

功能描述: 读取鼠标按键信息

入口参数: AX =05H ,BX=指定的按键:0—左键,1—右键,2—中键

出口参数: AX =按键状态,参见功能3H 中BX的说明

BX=按键次数

CX=水平位置(最后按键时)

DX=垂直位置(最后按键时)

(7)、功能06H

功能描述: 读取鼠标按钮释放信息

入口参数: AX =06H ,BX=指定的按键:0—左键,1—右键,2—中键

出口参数: AX =按键状态,参见功能3H 中BX的说明

BX=释放的次数

CX=水平位置(最后释放时)

DX=垂直位置(最后释放时)

(8)、功能07H

功能描述: 设置鼠标水平边界

入口参数: AX =07H

CX=最小水平位置

DX=最大水平位置

出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内

(9)、功能08H

功能描述: 设置鼠标垂直边界

入口参数: AX =08H

CX=最小垂直位置

DX=最大垂直位置

出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内

(10)、功能09H

功能描述: 设置图形鼠标形状

入口参数: AX =09H

BX=指针的水平位置

CX=指针的垂直位置

ES:DX=16×16位光标的映象地址 参数说明: (BX,CX)是鼠标的指针在16×16点阵中

的位置,(0,0)是左上角;

ES:DX指向的存储单元内存放 16×16点阵的位映象隐码,紧跟其后的是 16×16点阵的光

标掩码。

鼠标指针的显示方法: 位映象隐码“逻辑与”上屏幕显示区的内容,然后再用光标掩码内

容“异或”前面运算的结果。

出口参数: 无

(11)、功能0AH

功能描述: 设置本文鼠标形状

入口参数: AX =0AH

BX=光标类型: 0 — CX和DX的各位含义如下: 位7~0 鼠标指针符号

位10~8 字符前景色

位11 亮度

位14~12 字符背景色

位15 闪烁

1 — CX=光标的起始扫描线

DX=光标的结束扫描线

出口参数: 无

(12)、功能0BH

功能描述: 读取鼠标移动计数

入口

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值