// показать/спрятать "мышь"
void mouse(int m)
{
int mode;
if (m==0) mode=2;else mode=m;
asm{
mov ax,mode //задание номера функции
int 33h //вызов прерывания №33
}
}
// определение координат и состояния кнопок "мыши"
void mStatus()
{
int mbut, mx, my;
asm{
mov ax,3h //задание номера функции
int 33h //вызов прерывания №33
mov mx,cx // координата Х
mov my,dx // координата У
mov mbut,bx // байт состояния кнопок
}
x = mx;
y = my;
but = mbut;
}
//перемещение "мыши" в заданную точку Xm,Ym
void mousemove(int xm, int ym)
{
asm{
mov ax, 4
mov cx, xm
mov dx, ym
int 33h
}
}
//определение числа нажатий левой кнопки "мыши"
void count()
{
if (but==0) nb=0;
if ((but==1) && (nb==0)) {nbut++;nb=1;}
}
//определение нахождения "мыши" в заданной области
int mousecoord(int x1,int y1, int x2, int y2)
{
mStatus();
if (x>=x1 && x<=x2 && y>=y1 && y<=y2) return 1;
else return 0;
}
В графическом режиме
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
void mouse(int m)
{
int mode;
if (m == 0)
mode = 2;
else mode = m;
asm{
mov ax, mode
int 33h
}
}
void main(){
clrscr();
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
cout << "Graphics error: " << grapherrormsg(errorcode) << endl;
cout << "Press any key to halt:";
getch();
exit(1);
}
mouse(1);
getch();
closegraph();
}
В консоли
#include <conio.h>
void mouse(int m)
{
int mode;
if (m == 0)
mode = 2;
else mode = m;
asm{
mov ax, mode
int 33h
}
}
void main(){
clrscr();
mouse(1);
getch();
}