⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymouse.c

📁 图书借阅管理程序v1.2
💻 C
字号:
/*****关于鼠标编程****/
/***本部分是调用BIOS的33H鼠标中断功能,详细情况可参阅有关资料***/

#include<dos.h>

int reset_mouse();     /**初始华鼠标**/
void light_mouse(int op);  /**显示鼠标 op=1显示,op=2 关闭**/
int get_mouse_status(int *x,int *y);  /**获取鼠标当前状态**/
void set_mousexy(int x,int y);         /**使鼠标跳到坐标 x,y**/
  /***设置鼠标的活动范围( left,top,right,bottom分别为左上角和右下角坐标)**/
void set_mouse_range(int left,int top,int right,int bottom);

extern int have_mouse=0; /***鼠标是否安装(1是,0否)***/
extern int mx=100,my=100;  /**鼠标坐标(mouse x,mouse y的缩写)***/

/****函数reset_mouse();初始化鼠标及其驱动*****/
int reset_mouse()
{
 union REGS r;
 r.x.ax=0;          /**初始化功能号为00***/
 int86(0x33,&r,&r);
 have_mouse=r.x.ax;
 return r.x.ax==0?0:r.x.bx;/**bx中为按键数**/
}


#define ON 1
#define OFF 2
/**显示,隐藏鼠标光标,op=ON为显示,op=OFF为隐藏***/
void light_mouse(int op)
{
 union REGS r;
 if(have_mouse)
   {r.x.ax=op;
    int86(0x33,&r,&r);
   }
}


#define LEFT_BUTTON 1    /*左键*/
#define RIGHT_BUTTON 2   /*右键*/
#define BOTH_BUTTON 3    /*两键同时按下*/
int get_mouse_status(int *x,int *y)
{
 union REGS r;
 if(have_mouse)
  {
   r.x.ax=3;
   int86(0x33,&r,&r);
    *x=r.x.cx;
    *y=r.x.dx;
    return r.x.bx;
  }
 else return 0;
}


void set_mousexy(int x,int y)
{
 union REGS r;
 if(have_mouse)
  {r.x.ax=4;
   r.x.cx=x;
   r.x.dx=y;
   int86(0x33,&r,&r);
  }

}

void set_mouse_range(int left,int top,int right,int bottom)
{ /**left,top,right,bottom分别为左上角和右下角坐标**/
 union REGS r;
 if(have_mouse)
    {r.x.ax=7; /**设置x方向活动范围**/
     r.x.cx=left;
     r.x.dx=right;
     int86(0x33,&r,&r);
     r.x.ax=8;/** 设置y方向活动范围**/
     r.x.cx=top;
     r.x.dx=bottom;
     int86(0x33,&r,&r);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -