Raton con c.
Conoceis algunu alguna libreria(q no sea alegro) o algo q permita utilizar el raton en c.Gracias
Proba el siguiente programa, creo que anda bien, pero hace mucho tiempo que no lo uso.
// MouseT.H
// Header File for Text Mouse
// written in Borlandc CPP - ver 3.1.
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <dos.h>
//---------------------------------------------------------------------------
int CheckMouse();
void ShowMouse();
void HideMouse();
int SetRange(int,int,int,int);
void CancelRange();
int GetMouseInfo(int*,int*);
void MousePressPos(int,int*,int*);
void MouseReleasePos(int,int*,int*);
//---------------------------------------------------------------------------
int CheckMouse()
{
union REGS ireg;
ireg.x.ax = 0x00;
int86(0x33,&ireg,&ireg);
if(ireg.x.ax)
return ireg.x.bx;
else
return 0;
} // CHECK MOUSE
//---------------------------------------------------------------------------
void ShowMouse()
{
union REGS ireg;
ireg.x.ax = 0x01 ;
int86(0x33,&ireg,&ireg);
} // SHOW MOUSE
//---------------------------------------------------------------------------
void HideMouse ( void )
{
union REGS ireg;
ireg.x.ax = 0x02;
int86(0x33,&ireg,&ireg);
} // HIDE MOUSE
//---------------------------------------------------------------------------
int SetRange(int MinX,int MinY,int MaxX,int MaxY)
{
MinX--;
MaxX--;
MinY--;
MaxY--;
union REGS ireg;
if (MinX >=0 && MinX < 80)
MinX *= 8 ;
else
return 0;
if (MaxX >=0 && MaxX < 80)
MaxX *= 8 ;
else
return 0;
if (MinY >=0 && MinY < 25)
MinY *= 8 ;
else
return 0;
if (MaxY >=0 && MaxY < 25)
MaxY *= 8 ;
else
return 0;
ireg.x.ax = 0x7; // horizontal range
ireg.x.cx = MinX;
ireg.x.dx = MaxX;
int86(0x33,&ireg,&ireg);
ireg.x.ax = 0x8; // vertical range
ireg.x.cx = MinY;
ireg.x.dx = MaxY;
int86(0x33,&ireg,&ireg);
ireg.x.ax = 0x04; // move cursor to left-up corner
ireg.x.cx = MinX;
ireg.x.dx = MinY;
int86(0x33,&ireg,&ireg);
return 1;
} // SET RANGE
//---------------------------------------------------------------------------
void CancelRange()
{
SetRange(1,1,80,25);
} // CANCEL RANGE
//---------------------------------------------------------------------------
int GetMouseInfo(int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x03;
int86(0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1;
*Y = ireg.x.dx/8 + 1;
return ireg.x.bx;
} // MOUSE STATUS
//---------------------------------------------------------------------------
void MousePressPos(int Button,int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x05;
ireg.x.bx = Button;
int86 (0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1; // update coordinates
*Y = ireg.x.dx/8 + 1;
} // MOUSE PRESS POSITION
//---------------------------------------------------------------------------
void MouseReleasePos(int Button,int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x06;
ireg.x.bx = Button;
int86 (0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1; // update coordinates
*Y = ireg.x.dx/8 + 1;
} // MOUSE RELEASE POSITION
//---------------------------------------------------------------------------
// MouseT.H
// Header File for Text Mouse
// written in Borlandc CPP - ver 3.1.
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <dos.h>
//---------------------------------------------------------------------------
int CheckMouse();
void ShowMouse();
void HideMouse();
int SetRange(int,int,int,int);
void CancelRange();
int GetMouseInfo(int*,int*);
void MousePressPos(int,int*,int*);
void MouseReleasePos(int,int*,int*);
//---------------------------------------------------------------------------
int CheckMouse()
{
union REGS ireg;
ireg.x.ax = 0x00;
int86(0x33,&ireg,&ireg);
if(ireg.x.ax)
return ireg.x.bx;
else
return 0;
} // CHECK MOUSE
//---------------------------------------------------------------------------
void ShowMouse()
{
union REGS ireg;
ireg.x.ax = 0x01 ;
int86(0x33,&ireg,&ireg);
} // SHOW MOUSE
//---------------------------------------------------------------------------
void HideMouse ( void )
{
union REGS ireg;
ireg.x.ax = 0x02;
int86(0x33,&ireg,&ireg);
} // HIDE MOUSE
//---------------------------------------------------------------------------
int SetRange(int MinX,int MinY,int MaxX,int MaxY)
{
MinX--;
MaxX--;
MinY--;
MaxY--;
union REGS ireg;
if (MinX >=0 && MinX < 80)
MinX *= 8 ;
else
return 0;
if (MaxX >=0 && MaxX < 80)
MaxX *= 8 ;
else
return 0;
if (MinY >=0 && MinY < 25)
MinY *= 8 ;
else
return 0;
if (MaxY >=0 && MaxY < 25)
MaxY *= 8 ;
else
return 0;
ireg.x.ax = 0x7; // horizontal range
ireg.x.cx = MinX;
ireg.x.dx = MaxX;
int86(0x33,&ireg,&ireg);
ireg.x.ax = 0x8; // vertical range
ireg.x.cx = MinY;
ireg.x.dx = MaxY;
int86(0x33,&ireg,&ireg);
ireg.x.ax = 0x04; // move cursor to left-up corner
ireg.x.cx = MinX;
ireg.x.dx = MinY;
int86(0x33,&ireg,&ireg);
return 1;
} // SET RANGE
//---------------------------------------------------------------------------
void CancelRange()
{
SetRange(1,1,80,25);
} // CANCEL RANGE
//---------------------------------------------------------------------------
int GetMouseInfo(int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x03;
int86(0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1;
*Y = ireg.x.dx/8 + 1;
return ireg.x.bx;
} // MOUSE STATUS
//---------------------------------------------------------------------------
void MousePressPos(int Button,int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x05;
ireg.x.bx = Button;
int86 (0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1; // update coordinates
*Y = ireg.x.dx/8 + 1;
} // MOUSE PRESS POSITION
//---------------------------------------------------------------------------
void MouseReleasePos(int Button,int *X,int *Y)
{
union REGS ireg;
ireg.x.ax = 0x06;
ireg.x.bx = Button;
int86 (0x33,&ireg,&ireg);
*X = ireg.x.cx/8 + 1; // update coordinates
*Y = ireg.x.dx/8 + 1;
} // MOUSE RELEASE POSITION
//---------------------------------------------------------------------------
