| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:[求助]怎么样使用int 33h中断显示鼠标?
只看楼主 加入收藏
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
 问题点数:0 回复次数:4 
[求助]怎么样使用int 33h中断显示鼠标?
问题如上,帮忙编个简单的
搜索更多相关主题的帖子: 鼠标 int 
2007-07-26 16:35
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 

#include <dos.h>
#include <stdio.h>
#define MOUSE_INT 0x33
#define MOUSE_RESET 0x00
#define MOUSE_SHOW 0x01
#define MOUSE_HIDE 0x02
#define MOUSE_BUTT_POS 0x03
#define MOUSE_SET_SENSITIVITY 0x1A
#define MOUSE_MOTION_REL 0x0B
#define MOUSE_LEFT_BUTTON 0x01
#define MOUSE_RIGHT_BUTTON 0x02
#define MOUSE_CENTER_BUTTON 0x04

int Squeeze_Mouse(int command,int *x,int *y,int *buttons)
{
union REGS inregs,outregs;

switch(command)
{
case MOUSE_RESET:
{
inregs.x.ax=0x00;
int86(MOUSE_INT,&inregs,&outregs);
*buttons=outregs.x.bx;
return(outregs.x.ax);
}break;

case MOUSE_SHOW:
{
inregs.x.ax=0x01;
int86(MOUSE_INT,&inregs,&outregs);
return(1);
}break;


case MOUSE_HIDE:
{
inregs.x.ax=0x02;
int86(MOUSE_INT,&inregs,&outregs);
return(1);
}break;


case MOUSE_BUTT_POS:
{
inregs.x.ax=0x03;
int86(MOUSE_INT,&inregs,&outregs);
*x=outregs.x.cx;
*y=outregs.x.dx;
*buttons=outregs.x.bx;
return(1);
}break;


case MOUSE_MOTION_REL:
{
inregs.x.ax=0x03;
int86(MOUSE_INT,&inregs,&outregs);
*x=outregs.x.cx;
*y=outregs.x.dx;
return(1);
}break;

case MOUSE_SET_SENSITIVITY:
{
inregs.x.ax=0x04;

inregs.x.bx=*buttons;
inregs.x.cx=*x;
inregs.x.dx=*y;

int86(MOUSE_INT,&inregs,&outregs);
return(1);
}break;


default:break;
}
}


void main(void)
{
int xmouse,ymouse,btnmouse,done=0,old=0,i=0;
Squeeze_Mouse(MOUSE_RESET,0,0,0);
Squeeze_Mouse(MOUSE_SHOW,0,0,0);
while(done==0)
{
Squeeze_Mouse(MOUSE_BUTT_POS,&xmouse,&ymouse,&btnmouse);
if(btnmouse==1&&old!=1)
{
old=1;
Squeeze_Mouse(MOUSE_HIDE,0,0,0);
printf("x=%d,y=%d,button=%d\n",xmouse,ymouse,btnmouse);
Squeeze_Mouse(MOUSE_SHOW,0,0,0);
}
if(btnmouse==2&&old!=2)
{
old=2;
Squeeze_Mouse(MOUSE_HIDE,0,0,0);
printf("x=%d,y=%d,button=%d\n",xmouse,ymouse,btnmouse);
Squeeze_Mouse(MOUSE_SHOW,0,0,0);
}
i++;
if(i==5000)
{
old=0;
i=0;
}
if(kbhit())
done=1;
}

}

2007-07-26 17:32
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-07-27 09:30
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
得分:0 
anlogo那个怎么不行?
2007-07-27 20:04
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
收藏
得分:0 
怎么说anlogo那个不行呢?我也试过,可以通过啊~他那个是没有绘制鼠标功能的,别以为没鼠标出现就不行哦...

2007-07-28 20:36
快速回复:[求助]怎么样使用int 33h中断显示鼠标?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026865 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved