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

📄 mouse_sharp.c

📁 tc下鼠标库
💻 C
字号:
int far Hand_Shape[2][16] =
      {
      0xf3ff,0xe1ff,0xe1ff,0xe1ff,
      0xe001,0xe000,0xe000,0xe000,
      0x8000,0x0000,0x0000,0x0000,
      0x0000,0x0000,0x8001,0xc003,

      0x0000,0x0c00,0x0c00,0x0c00,
      0x0c00,0x0db6,0x0db6,0x0db6,
      0x0db6,0x6ffe,0x6ffe,0x6ffe,
      0x7ffe,0x7ffe,0x3ffc,0x0000
      };

    int far Arrow_Shape[2][16] =
     {
      0xffff,0xffff,0xffff,0xffff,
      0xffff,0xffff,0xffff,0xffff,
      0xffff,0xffff,0xffff,0xffff,
      0xffff,0xffff,0xffff,0xffff,
      0x0000,0x4000,0x6000,0x7000,
      0x7800,0x7c00,0x7e00,0x7f00,
      0x7f80,0x7e00,0x7c00,0x4600,
      0x0600,0x0300,0x0300,0x0180
      };
    int far Aim_Shape[2][16] =
       {
 {0xffff,0xffff,0xffff,0xffff,
  0xffff,0xffff,0xffff,0xffff,
  0xffff,0xffff,0xffff,0xffff,
  0xffff,0xffff,0xffff,0xffff},
 {0x0100,0x0fe0,0x0100,0x0100,
  0x4104,0x4104,0x4104,0xfffe,
  0x4104,0x4104,0x4104,0x0100,
  0x0100,0x0fe0,0x0100,0x0000,
 }
      };

// 挂接用户鼠标中断处理程序
     //   输入参数: AX=0ch
     //             CX=事件屏蔽(event_mask)
     //                bit0-鼠标移动
     //                bit1-鼠标左键按下
     //                bit2-鼠标左键释放
     //                bit3-鼠标右键按下
     //                bit4-鼠标右键释放
     //                bit5-鼠标中键按下 (Mouse Systems/Logitech mouse)
     //                bit6-鼠标中键释放 (Mouse Systems/Logitech mouse)
     //                各位置1 - 发生相应动作时调用用户程序
     //             DX=指向中断子程序的远指针的偏移地址
     //             ES=指向中断子程序的远指针的段移地址
     //     返回值: 无
     //  注释:当子程序被调用, 它会传递以下参数:
     //      AX = 发生的事件 (与定义事件屏蔽相对应)
     //      BX = 按键状态
     //      CX = 当前鼠标光标X轴坐标
     //      DX = 当前鼠标光标Y轴坐标
     //      SI = 水平移动计数增量(mickey)
     //      DI = 垂直移动计数增量(mickey)
     //   某些版本的Microsoft的驱动程序返回错误的状态─CX bit 0 表示鼠标移动
     //   并且交换了SI和DI的内容

void MyMouse::Mouse_Setup_User_Application(void far User_App(),unsigned Event_Mask)
 {
    REGPACK regs;
       if (Mouse)
 {
    unsigned Sega=FP_SEG(User_App),Offa=FP_OFF(User_App);
    regs.r_ax=0x000c;
    regs.r_cx=Event_Mask; // 0x1F;
    regs.r_dx=Offa;
    regs.r_es=Sega;
    intr(MOUSE_INTERRUPT,&regs);
    //  regs.r_ax=0x0003;
    // intr(MOUSE_INTERRUPT,&regs);
    // Mouse_Get_Status(Mouse_Now_Status);
       }
   }
void MyMouse::Mouse_Unload_User_Application()

 {    REGPACK regs;

    if (Mouse)
       {
   regs.r_ax=0x000c;
   regs.r_cx=0;
   intr(MOUSE_INTERRUPT,&regs);
        }

       }



void MyMouse::Mouse_Setup_Cursor(int Mode_Num)
     {
  REGPACK regs;
  regs.r_ax=9;
 switch(Mode_Num)
   {
    case 2: regs.r_bx=7;
     regs.r_cx=7;
     regs.r_dx=FP_OFF(&::Aim_Shape);
     regs.r_es=FP_SEG(&::Aim_Shape);
     break;
    case 1:
     regs.r_bx=4;
     regs.r_cx=0;
     regs.r_dx=FP_OFF(&::Hand_Shape);
     regs.r_es=FP_SEG(&::Hand_Shape);
     break;
    case 0:
   default: regs.r_bx=0;
     regs.r_cx=0;
     regs.r_dx=FP_OFF(&::Arrow_Shape);
     regs.r_es=FP_SEG(&::Arrow_Shape);
     break;
   }
      intr(MOUSE_INTERRUPT,&regs);
      return;
     }

⌨️ 快捷键说明

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