PersonalCorpus 版 (精华区)

发信人: ambercctv (我爱紫丁香), 信区: Asm
标  题: 我来贴一个DOS下的鼠标例程
发信站: 哈工大紫丁香 (2003年05月18日22:02:28 星期天), 站内信件



union REGS regs;  /* 寄存器 */
void initmouse()    /* 初始化鼠标 */
{
 int flag;
 regs.x.ax=0;
 int86(0x33,&regs,&regs);   /* 0x33为鼠标中断 */
 flag=regs.x.ax;
 if(flag!=-1)    /** 鼠标初始化失败  **/
 { printf("\n\n\tNO MOUSE!"); exit(0); }
}
void noico()              /* hide mouse curser 隐藏鼠标光标 */
{
 regs.x.ax=2;
 int86(0x33,&regs,&regs);
}
void ico()                /* show mouse curser 显示鼠标光标*/
{
 regs.x.ax=1;
 int86(0x33,&regs,&regs);
}
/* 控制鼠标活动的范围并显示鼠标光标 */
void showmouse()         /* set the range of the mouse curser */
{
 regs.x.ax=7;
 regs.x.cx=25;
 regs.x.dx=620;
 int86(0x33,&regs,&regs); /* 鼠标X方向活动范围(25~620) */
 regs.x.ax=8;
 regs.x.cx=25;
 regs.x.dx=455;
 int86(0x33,&regs,&regs); /* 鼠标Y方向活动范围(25~455) */
 ico();
}
/* 功能:获取鼠标坐标及鼠标按钮按下的状态 */
/* 参数:指向存储鼠标当前坐标的变量的指针 */
int mouseimg(int *x,int *y)                /* mouse position and button down */
{
 regs.x.ax=3;
 int86(0x33,&regs,&regs);
 *x=regs.x.cx;
 *y=regs.x.dx;
 return regs.x.bx;  /* 返回按钮按下的状态 */
}

--
◥◤ C C T V ◢◤ ◥◤ C C T V ◢◤
紫丁香你是那么迷人

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.208]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.772毫秒