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

📄 mouse.h

📁 c游戏编程从入门到精通_全部源代码和文档
💻 H
字号:
typedef struct{
  int mak[2][16];
  int hor;
  int ver;
  }mscurstype;

mscurstype arrow={0x3fff,0x1fff,0x0fff,0x07ff,
 0x03ff,0x01ff,0x00ff,0x007f,
 0x003f,0x00ff,0x01ff,0x10ff,
 0x30ff,0xf87f,0xf87f,0xfc3f,
 0x0000,0x4000,0x6000,0x7000,
 0x7800,0x7c00,0x7e00,0x7f00,
 0x7f80,0x7e00,0x7c00,0x4600,
 0x0600,0x0300,0x0300,0x0180,0,0};

mscurstype lin={0xe3e3,0xe3e3,0xe3e3,0xe3e3,
0x8080, 0x8080,0x8080,0xe3e3,
0xc1c1, 0x8080,0x0000,0x2323,
0xe3e3,0xe3e3,0xe3e3, 0xe3e3,
 0x0000,0x0808,0x0808,0x0808,
 0x0808,0x3e3e,0x0808,0x0808,
 0x1c1c,0x2a2a,0x4848,0x0808,
 0x0808,0x0808,0x0808,0x0000,2,0};

mscurstype qi={0xff89,0xff88,0xff8e,0x8001,
0x8001,0x8001,0x8d8f,0x8c8c,
0x8d8c,0x8d88,0x8009,0x8983,
0x9542,0x1540,0x39b0,0x7d79,
0x0000,0x0020,0x0020,0x0020,
0x3ffc,0x2020,0x2020,0x2020,
0x2020,0x2020,0x2020,0x2020,
0x0000,0x4008,0x0004,0x0000,16,0};

mscurstype handcurs={-7681,-7681,-7681,-7681,-7681,-8192,-8192,-8192,
		      0,    0,    0,    0,    0,    0,    0,    0,
		      7680,4608,4608,4608,4608,5119,4681,4681,4681,
		      -28671,-28671,-28671,-22767,-32767,-32767,-1,4,0};

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 setcurshape(mscurstype mask)
{
  union REGS r;
  struct SREGS s;
  r.x.ax=9;
  r.x.bx=mask.hor;
  r.x.cx=mask.ver;
  r.x.dx=FP_OFF(&mask);
  s.es=FP_SEG(&mask);
  int86x(0x33,&r,&r,&s);
}

void mscurson(mscurstype shape)
{
int msvisible;
 union REGS r;
 struct SREGS s;
 setcurshape(shape);
 r.x.ax=1;
 msvisible=1;
 int86x(0x33,&r,&r,&s);
 }

⌨️ 快捷键说明

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