下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、鼠标操作简介1. 鼠标简介鼠标系统实际上由两个主要元素组成:鼠标机制和称作鼠标驱动程序的内存驻留程序。鼠标驱动程序提供与鼠标通信所需的全部低级支持。此外,它自动维持鼠标光标位置和发现是否按下了某个键。一旦装入驱动程序,鼠标就可以被随后执行的任意程序使用。2. 鼠标驱动程序的主要功能可以通过PC中断33H访问鼠标和鼠标驱动程序的各种功能。所选择的特定函数依赖于中断时AX寄存器的值。三个其它寄存器(BX、CX和DX)用于把各种参数传送给鼠标例程。同样,鼠标函数使用这四个寄存器把鼠标的位置和按钮的状态返回给调用函数。功能输入值输出值功能调用初始化无AX BXAX=0000显示光标无无AX=0001隐
2、藏光标无无AX=0002读取状态无BXCXDXAX=0003设置位置CX、DX无AX=0004设置光标BXCXDX无AX=0009X范围CX DX无AX=0007Y范围CX DX无AX=0008光标范围CX DX SI DI无AX=0010中断程序CX ES: DX无AX=000C3.鼠标功能调用方法用TC通过INT33H中断来编制基本函数,有三种常用方法: 嵌入汇编程序,如:ASM CLI清中断利用全程变量赋予寄存器值,然后通过函数geninterrupt()调用中断实现利用联合类型REGS , SREGS通过函数int86(),int86x()调用中断,原型在在 dos.h 注意一下例程中
3、预定义了如下全局变量:#defi ne true 1#defi ne false 0int visual=false; /* to tell whether the mouse icon is visual and in it as false*/4. 鼠标的初始化Ini tMouse() union REGS regs;5in t86(0x33,®s, ®s);if(return false;else return true;5. 鼠标光标的显示与隐藏HideCur() union REGS regs;if(visual)in t86(0x33,®s
4、, ®s);visual=false;ShowCur() union REGS regs;if(!visual)Jin t86(0x33,®s, ®s); visual=true;在鼠标驱动程序中,鼠标的显示状态用0值表示,隐藏用负值表示,每调用一次显示功能则该值加一,每调用一次隐藏功能,则该值减一。这样,在多次调用了驱动程序的隐藏鼠 标光标功能后,再调用显示鼠标光标功能时,将不能正常显示鼠标光标。需要加入了一个 visual布尔型变量,来取代驱动程序中的数值。6. 读取按钮状态,读取或设置光标位置Status(i nt*x,i nt*y,i nt*s
5、tatus) union REGS regs;in t86(0x33,®s, ®s);*x=;*y=;*status=;其中X, Y为光标位置1为按下,1为按下,1为按下,0为未按0为未按0为未按status&1左键状态,status&2右键状态,status&4中键状态,要注意循环检测时的抖动现象,可增加一些空循环或延时来清除剩余的按键信号。例如:下面程序段,当鼠标移动时画线到当前的鼠标位置,当按左键时定义画线的启始位置,按右键时结束作图。int work in g=true;int x,y,status; while(worki ng)S
6、tatus( &x,&y,& status);If(status&1)/*left button pressed*/moveto(x,y);/* move to curre nt mouse positi on*/Else if(status&2) /*right button pressed,quit*/Work in g=false;Else/* no butt on pressed*/Lin eto(x,y);/*draw a line from last positi on */ Delay(20);/*delay 20ms to clear t
7、he ditheri ng*/ 7. 移动鼠标光标void MoveMouse(i nt x,i nt y) REGS regs;in t86(0x33,®s, ®s);&设置鼠标的光标形状设置鼠标光标需要三个方面信息:鼠标的外边界:8*8点阵,16个整数鼠标的内部形状:8*8点阵,16个整数以及鼠标的热点的相对坐标:int x,ySetCurs (un sig ned其中外边界和内边界连续存放,为长度为32的整型数组int marks32masks32,x,y) union REGS regs; struct SREGS sregs;J;/* hot sp
8、ot*/Jsegread( &sregs); in t86(0x33,®s,®s);一些不同形状的光标数据:/mouseOxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff,Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, /Cursor mask0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x13c0,0x3ff0, 0x7ff8, 0xff
9、f8, 0xfff8, 0x0824, 0x0822, 0x1ce2, 0x0000,/empty handOxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff,Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff, Oxffff,OxOcOO, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,0x7249, 0x9001,0x9001,0x9001,0x8001,0x8001,0x4002, 0x3ffc
10、,/full arrow0x3fff, Ox1fff, OxOfff, 0x07ff, 0x03ff, OxO1ff, OxOOff, 0x007f,0x003f, OxOOff, OxO1ff, 0x10ff, 0x30ff, 0xf87f, 0xf87f, 0xfc3f,0x0000, 0x4000, 0x6000, 0x7000, 0x7800, 0x7c00, 0x7e00, 0x7f00,0x7f80, 0x7e00, 0x7c00, 0x4600, 0x0600, 0x0300, 0x0300, 0x0180,/full hand0xf3ff, 0xe1ff, 0xe1ff, 0xe1ff, 0xe001, OxeOOO, OxeOOO, OxeOOO,0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8001,0xc003,OxOcOO, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,0x7249, 0x9001,0x9001,0x9001, 0x8001,0x8001,0x4002, 0x3ffc;Point hotspot=0,11,4,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理记录的团队协作
- 2026五年级数学上册 循环小数的认识
- 2026二年级数学下册 调查方法的学习
- 2026年医疗废物规范化管理培训试题及答案
- 快捷酒店岗位责任制度
- 意识形态与主体责任制度
- 房地产安全责任制度
- 扶梯安全生产责任制度
- 技术经济承包责任制度
- 护士法律责任制度
- 高职院校课程思政建设的质量评价指标体系
- 病历书写基本规范2025年版
- 酒店员工财务知识培训课件
- 吉尔吉斯斯坦比什凯克市大学汉字教学:现状、问题与对策探究
- 《三国演义》读书分享幻灯片课件
- 甘肃省张家川回族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 中医基础理论试题及答案3
- 水火箭课件教学课件
- 2025年甘肃省委党校在职研究生招生考试(政治经济学)历年参考题库含答案详解(5卷)
- 中车株洲所综合能源事业部业务简介
- 船舶态势感知技术-洞察及研究
评论
0/150
提交评论