- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c鼠标控制--课程报告
学号 《》
课程设计报告
鼠标控制 专业: 网络工程 班级: 16级(3)班 姓名: 代应豪 指导教师: 陈庆 成绩:
计算机学院
二0一七年四月二十七日
目录
一、设计内容及要求.........................................3
1.1鼠标简介.....................................................3
1.2鼠标功能调用方法...........................................3
1.3 设计要求..................................................... 3
二、设计过程或程序代码............................................3
2.1程序代码......................................................3
2.2对程序调试过程的说明......................................6
三、程序运行结果.....................................................7
四、小结.............................................................7
五、致谢...........................................................8
参考文献...........................................................9
附:源程序..........................................................9
一、设计内容及要求
1.1鼠标简介
鼠标系统实际上由两个主要元素组成:鼠标机制和称作鼠标驱动程序的内存驻留程序。鼠标驱动程序提供鱼鼠标通信所需的全部低级支持。此外,它自动维持鼠标光标位置和发现是否按下了某个键。一旦装入驱动程序,鼠标就可以被随后执行的任意程序使用。可以通过PC中短33H访问鼠标和鼠标驱动程序的各种功能。所选择的特定函数依赖于中断时AX寄存器的值。三个其它寄存器(BX、CX和DX)用于把各种参数传给鼠标例程。同样,鼠标函数使用这四个寄存器把鼠标的位置和按钮的状态返回给调用函数。
1.2 鼠标功能调用方法
用TC通过INT33H中段来编制基本函数,有三种常用方法:
嵌入汇编程序,如:ASM CLI清中断。
利用全程变量赋予寄存器值,然后通过函数geninterrupt()调用中断实现。
利用联合类型REGS,SREGS通过函数int86(),int86x()调用中断,原型在dos.h。
1.3设计要求
通过鼠标的初始化、鼠标光标的隐藏、鼠标光标的显示、读取鼠标的状态设置光标位置、设置鼠标光标形状、设置鼠标的移动范围编写一个简单的鼠标控制程序。
二、设计过程或程序代码
2.1程序代码
鼠标的初始化
InitMouse()
{union REGS regs;
regs.x,ax=0;
int86(0x33,regs,regs);
if(regs.x.ax==0)
return false;
elese return true;}
鼠标光标的隐藏
HideCur()
{union REGS regs;
if(visual){
regs.x.ax=2;
int86(0x33,regs,regs);
visual=false;
}}
鼠标光标的显示
ShowCur()
{union REGS regs;
if(!visual){
regs.x.ax=1;
int86(0x33,regs,regs);
visual=true;
}}
读取鼠标的状态
Status()
{union REGS regs;
regs.x.ax=3;
int86(0x33,regs,regs);
x=regs.x.cx;y=regs.x.dx;
status=regs.x.bx;
}
设置光标位置
void MoveMouse(int x,int y)
{REGS regs;
regs.x.ax=4;
regs.x.cx=x;
regs.x.dx=y;
int86(0x33,regs,regs);
}
设置鼠标光标形状
SetCurs(unsigned masks[32],x,y)
{ union REGS regs;struct SREGS sregs;
文档评论(0)