Вывод координат в процессе перемещения мыши. Координаты должны выводится в определенной пользователем области исключения. Процесс вывода координат мыши включается нажатием левой, а выключается нажатием правой кнопки мыши.
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
union REGS rg;
int main(void)
{
int i;
int temp;
unsigned old_videomode, new_videomode;
char buf[20], *bufptr;
int nButtons;
rg.h.ah = 0;
rg.h.al = 5;
int86(0x10, &rg, &rg);
// Инициализируем мышь
rg.x.ax = 0;
int86(0x33, &rg, &rg);
if(rg.x.bx == 0)
{
printf("Mouse not found\n");
return -1;
}
// Включаем курсор
rg.x.ax = 1;
int86(0x33, &rg, &rg);
temp = 3;
while(!kbhit())
{
rg.x.ax = 3;
int86(0x33, &rg, &rg);
if((rg.x.bx == 1) || (temp == 1)){
printf("x:%5d y:%5d",
rg.x.cx, rg.x.dx);
temp = 1;
}
if(rg.x.bx == 2){
temp = 2;
printf(" ");
}
for(i=0; i<20; i++) printf("\b");
}
// Выключаем курсор
rg.x.ax = 2;
int86(0x33, &rg, &rg);
return 0;
}
|