鼠标趣味编程一例

鼠标趣味编程一例

ID:41037622

大小:22.83 KB

页数:7页

时间:2019-08-14

鼠标趣味编程一例_第1页
鼠标趣味编程一例_第2页
鼠标趣味编程一例_第3页
鼠标趣味编程一例_第4页
鼠标趣味编程一例_第5页
资源描述:

《鼠标趣味编程一例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、鼠标趣味编程一例  在用户自己的图形环境下应用鼠标,不但使软件界面非常友好、便于操作,而且也是一件非常有趣的事情。  当然,你可以设计自己的鼠标驱动程序,不过那要更专业、更麻烦一些。本文主要是利用已有的鼠标驱动程序,通过0x33H号中断调用来编写一个有趣的程序。  关于0x33H号鼠标中断调用中,各子功能所实现的功能,您可以查阅相关的书籍。现仅把本程序中所用到的几个功能号说明如下:功能号实现的功能00h复位光标01h显示光标02h隐藏光标03h查询光标状态07h设置光标水平移动区域08h设置光标垂直移动区域  在C语言中,鼠标中断调用是通过函数in

2、t86(num,in_regs,out_regs)来实现的。其中:num是中断调用号,in_regs是中断调用时的输入值,out_regs是中断结束后的返回值。具体的函数调用方法,您可以查阅手册,也可以参考本程序中的用法。  本程序运行后,屏幕被划分成两个窗口:一个是鼠标窗口,另一个是状态窗口。移动鼠标或按键,相应的鼠标位置和按键状态在状态窗口中给出。本程序在TurboC2.0环境下调试通过。  #include〈graphics.h〉  #include〈alloc.h〉  #include〈stdlib.h〉  #include〈string.

3、h〉  #include〈stdio.h〉  #include〈time.h〉  #include〈dos.h〉  #defineDZH16  intmain()  {intgd=DETECT,gm;  structviewporttypevpbase,vptitle,vpgraph;  intx,y,x_cur,y_cur;  intlpx,lpy,rpx,rpy;  unionREGSmregs;  unsignedcharstr[]=“Mouseposition:",message[80];  unsignedcharlfold,rhold,

4、lf[]=“R",rh[]=“R";  registerbgidriver(EGAVGA_driver);  initgraph(&gd,&gm,“");/*初始化图形环境*/  getviewsettings(&vpbase);/*设置窗口系统*/  rectangle(vpbase.left,vpbase.top,vpbase.right,vpbase.bottom);  line(vpbase.left,vpbase.top+DZH+2,vpbase.right,vpbase.top+DZH+2);  setviewport(vpbase.l

5、eft+1,vpbase.top+1,vpbase.right-1,vpbase.top+DZH+1,vpbase.clip);  getviewsettings(&vptitle);  setviewport(vptitle.left,vptitle.bottom+2,vptitle.right,vpbase.bottom-1,vptitle.clip);  getviewsettings(&vpgraph);  setviewport(vptitle.left,vptitle.top,vptitle.right,vptitle.bottom,v

6、ptitle.clip);  settextjustifyCENTER_TEXTCENTER_TEXT);  x=(vptitle.right-vptitle.left)/2+1;  y=(vptitle.bottom-vptitle.top)/2+1;  mregs.x.ax=0;/*复位鼠标*/  int86(0x33,&mregs,&mregs);  mregs.x.ax=7;/*设置水平方向光标的移动范围*/  mregs.x.cx=vpgraph.left;  mregs.x.dx=vpgraph.right;  int86(0x33,&

7、mregs,&mregs);  mregs.x.ax=8;/*设置垂直方向光标的移动范围*/  mregs.x.cx=vpgraph.top;  mregs.x.dx=vpgraph.bottom;  int86(0x33,&mregs,&mregs);  mregs.x.ax=1;/*显示光标*/  int86(0x33,&mregs,&mregs);  mregs.x.ax=3;/*读光标状态*/  int86(0x33,&mregs,&mregs);  x_cur=mregs.x.cx;  y_cur=mregs.x.dx;  switch(

8、mregs.x.bx)/*检查按键状态*/  {case0:  lfold=lf[0]='xDF';  rhold=rh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。