Написать программу подключения мыши. При нажатии левой кнопки мыши вычисляются координаты курсора — C++(Си)

// показать/спрятать "мышь"
 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();
}

Leave a Comment