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

📄 鼠标函数.txt

📁 /*TC 2.0源码
💻 TXT
字号:
/*TC 2.0源码,调用前先加载鼠标*/

#include "dos.h"

/*鼠标信息宏定义*/
#define WAITING 0xff00
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define RIGHTPRESS 0xff02
#define RIGHTCLICK 0xff20
#define RIGHTDRAG 0xff2a
#define MIDDLEPRESS 0xff04
#define MIDDLECLICK 0xff40
#define MIDDLEDRAG 0xff4c
#define MOUSEMOVE 0xff08

int Keystate;
int MouseExist;
int MouseButton;
int MouseX;
int MouseY;

/*鼠标光标形状定义*/
typedef struct
  {
   unsigned int shape[32];
   char hotx;
   char hoty;
  }SHAPE;

/*手型1*/
SHAPE HAND1={
      {
       0xe1ff,0xe1ff,0xe1ff,0xe1ff,
       0xe000,0xe000,0xe000,0xe000,
       0x0000,0x0000,0x0000,0x0000,
       0x0000,0x0000,0x0000,0x0000,
       0x1e00,0x1200,0x1200,0x1200,
       0x1200,0x13ff,0x1249,0x1249,
       0x1249,0x9001,0x9001,0x8001,
       0x8001,0x8001,0x8001,0xffff
      },
      5,0,
     };

/*手型2*/
SHAPE HAND2={
      {
       0xf3ff,0xe1ff,0xe2ff,0xe1ff,
       0xe001,0xe000,0xe000,0xe000,
       0x8000,0x0000,0x0000,0x0000,
       0x0000,0x0000,0x8001,0x0003,
       0x0c00,0x1200,0x1200,0x1200,
       0x13fe,0x1249,0x1200,0x1249,
       0x7249,0x9001,0x9001,0x9001,
       0x8001,0x8001,0x4002,0x3ffc
      },
      4,0,
     };

/*箭头型*/
SHAPE ARROW={
      {
       0x3fff,0x1fff,0x0fff,0x07ff,
       0x03ff,0x01ff,0x00ff,0x007f,
       0x003f,0x00ff,0x01ff,0x10ff,
       0x30ff,0xf87f,0xf87f,0xfc3f,
       0x0000,0x7c00,0x6000,0x7000,
       0x7800,0x7c00,0x7e00,0x7f00,
       0x7f80,0x7e00,0x7c00,0x4600,
       0x0600,0x0300,0x0300,0x0180
      },
      0,0,
     };

/*左右箭头型*/
SHAPE LEFTRIGHT={
   {
    0xffff,0xffff,0xfbdf,0xf3cf,
    0xe3c7,0xc003,0x8001,0x0000,
    0x8001,0xc003,0xe3c7,0xf3cf,
    0xfbdf,0xffff,0xffff,0xffff,
    0x0000,0x0000,0x0420,0x0c30,
    0x1428,0x27e4,0x4002,0x8001,
    0x4002,0x27e4,0x1428,0x0c30,
    0x0420,0x0000,0x0000,0x0000
   },
   8,8,
  };

/*上下箭头型*/
SHAPE UPDOWN={
       {
        0xfeff,0xfcff,0xf83f,0xf01f,
        0xe00f,0xc00f,0xf83f,0xf83f,
        0xf83f,0xf83f,0xc007,0xe00f,
        0xf01f,0xf83f,0xfc7f,0xfeff,
        0x0100,0x0280,0x0440,0x0820,
        0x1010,0x3c78,0x0440,0x0440,
        0x0440,0x0440,0x3c78,0x1010,
        0x0820,0x0440,0x0280,0x0100
       },
       8,8,
      };

/*鼠标光标显示*/
void MouseOn()
  {
   _AX=0x01;
   geninterrupt(0x33);
  }

/*鼠标光标掩示*/
void MouseOff()
  {
   _AX=0x02;
   geninterrupt(0x33);
  }

/*鼠标是否加载
  MouseExist:1=加载
      0=未加载
  MouseButton:鼠标按键数目 */
void MouseLoad()
  {
   _AX=0x00;
   geninterrupt(0x33);
   MouseExist=_AX;
   MouseButton=_BX;
  }

/*鼠标状态值初始化*/
void MouseReset()
  {
   _AX=0x00;
   geninterrupt(0x33);
  }

/*改变鼠标光标形状
  SHAPE sp:为以上定义的形状 */
void MouseShape(SHAPE sp)
  {
   _BX=sp.hotx;
   _CX=sp.hoty;
   _ES=FP_SEG(&sp.shape);
   _DX=FP_OFF(&sp.shape);
   _AX=0x09;
   geninterrupt(0x33);
  }

/*设置鼠标左右边界
  lx:左边界
  gx:右边界        */
void MouseSetX(int lx,int rx)
  {
   _CX=lx;
   _DX=rx;
   _AX=0x07;
   geninterrupt(0x33);
  }

/*设置鼠标上下边界
  uy:上边界
  dy:下边界       */
void MouseSetY(int uy,int dy)
  {
   _CX=uy;
   _DX=dy;
   _AX=0x08;
   geninterrupt(0x33);
  }

/*设置鼠标当前位置
  x:横向坐标
  y:纵向坐标        */
void MouseSetXY(int x,int y)
  {
   _CX=x;
   _DX=y;
   _AX=0x04;
   geninterrupt(0x33);
  }

/*设置鼠标速度(缺省值:vx=8,vy=1)
  值越大速度越慢                 */
void MouseSpeed(int vx,int vy)
  {
   _CX=vx;
   _DX=vy;
   _AX=0x0f;
   geninterrupt(0x33);
  }

/*获取鼠标按下键的信息*/
/*是否按下左键
  返回值: 1=按下 0=释放*/
int LeftPress()
  {
   _AX=0x03;
   geninterrupt(0x33);
   return(_BX&1);
  }

/*是否按下中键
  返回值同上   */
int MiddlePress()
  {
   _AX=0x03;
   geninterrupt(0x33);
   return(_BX&4);
  }

/*是否按下右键
  返回值同上    */
int RightPress()
  {
   _AX=0x03;
   geninterrupt(0x33);
   return(_BX&2);
  }

/*获取鼠标当前位置*/
void MouseGetXY()
  {
   _AX=0x03;
   geninterrupt(0x33);
   MouseX=_CX;
   MouseY=_DX;
  }

/* 测试代码 */
#include "graphics.h"
#include "conio.h"

main()
{int i=VGA,j=VGAHI;
 /* registerbgidriver(EGAVGA_driver); */
 initgraph(&i,&j,"");
 bar(100,100,200,200);
 setcolor(RED);
 rectangle(120,120,180,180);
 MouseOn();
 getch();
 MouseOff();
 MouseShape(HAND1);
 MouseOn();
 getch();
 MouseOff();
 MouseShape(LEFTRIGHT);
 MouseOn();
 getch();
 closegraph();
}

⌨️ 快捷键说明

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