mouse.c

来自「用c语言编写的控制鼠标的支持源程序 如果包含在你的图形程序中」· C语言 代码 · 共 86 行

C
86
字号
#ifndef XCGMOUSEH

#define XCGMOUSEH
#include<dos.h>
#include<stdio.h>
#include"myerro.c"
static struct MOUSE
{
   unsigned int  left;
   unsigned int  right;
   unsigned int  x;
   unsigned int  y;
}xcgmouse={0,0,0,0};

void mouse_init(void)
{
   union REGS regs;
   regs.x.ax=0;
   int86(0x33,&regs,&regs);
   if(regs.x.ax!=0);
   else{ xcgerrono=1; exit(1); }
}

void mouse_show(void)
{
   union REGS regs;
   regs.x.ax=1;
   int86(0x33,&regs,&regs);
}

void mouse_hide(void)
{
   union REGS regs;
   regs.x.ax=2;
   int86(0x33,&regs,&regs);
}

void mouse_state(void)
{
   union REGS regs;
   regs.x.ax=3;
   int86(0x33,&regs,&regs);
   xcgmouse.left=regs.x.bx & 1;
   xcgmouse.right=regs.x.bx & 2;
   xcgmouse.x=regs.x.cx;
   xcgmouse.y=regs.x.dx;
}

void setmouseshape(int far *p,int hotx,int hoty)
{
   union REGS regs;
   struct SREGS sregs;
   regs.x.ax=9; regs.x.bx=hotx;  regs.x.cx=hoty;
   regs.x.dx=FP_OFF(p); sregs.es=FP_SEG(p);
   int86x(0x33,&regs,&regs,&sregs);
}

int mouse_inwindow(unsigned int x0,unsigned int y0,\
		   unsigned int x1,unsigned int y1)
{
   if(xcgmouse.x>x0 && xcgmouse.x<x1 && xcgmouse.y>y0 && xcgmouse.y<y1)
   return(1);
   else return(0);
}

int getmouseleft(void)
{
   return(xcgmouse.left);
}

int getmouseright(void)
{
   return(xcgmouse.right);
}

unsigned int getmousex(void)
{
   return(xcgmouse.x);
}

unsigned int getmousey(void)
{
   return(xcgmouse.y);
}

#endif

⌨️ 快捷键说明

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