Buenas, buenas,
estoy haciendo un proyecto y actualmente intentando aplicar el mouse en el mismo.
He podido encontrar un código pero el detalle es que no me gustaria conocer (o mejor dicho entender) como funciona, ya que muchas cosas no se que hacen. Aqui va el codigo que encontre
.
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
int MirarPuntero(void);
int MostrarPuntero(void);
int BotonPulsado(void);
int CorHTexto(void);
int CorVTexto(void);
void main(void)
{
if(!MirarPuntero())
{
clrscr();
printf("ERROR... MOUSE NO DETECTADOnn");
exit(1);
}
clrscr();
_setcursortype(_NOCURSOR);
gotoxy(20,1);printf("PROGRAMACION DEL MOUSE");
MostrarPuntero();
do
{
gotoxy(3,3);printf("Fila: : %2d",CorVTexto());
gotoxy(3,4);printf("Columna : %2d",CorHTexto());
switch(BotonPulsado())
{
case 0:
gotoxy(32,11); printf("NINGUN BOTON PULSADO ");
break;
case 1:
{
gotoxy(32,11); printf("BOTON IZQUIERDO PULSADO ");
sound(1000); delay(50); nosound();
break;
}
case 2:
{
gotoxy(32,11); printf("BOTON DERECHO PULSADO ");
sound(800); delay(50); nosound();
break;
}
}
}
while (!kbhit());
_setcursortype(_NORMALCURSOR);
} /* CIERRE DEL PROGRAMA */
int MirarPuntero(void)
{
asm xor ax, ax
asm int 33h
asm cmp ax, -1
asm je Existe_Raton
return 0;
Existe_Raton:
return 1;
}
int MostrarPuntero(void)
{
asm mov ax, 01h
asm int 33h
return 1;
}
int BotonPulsado()
{
asm mov ax, 03h
asm int 33h
return _BX;
}
int CorHTexto(void)
{
asm mov ax, 03h
asm int 33h
return (_CX/8)+1;
}
int CorVTexto(void)
{
asm mov ax, 03h
asm int 33h
return (_DX/8)+1;
}
La parte que no entiendo son las funciones; por lo menos las partes de asm y la linea Existe Raton ademas de ciertos return. Por lo menos e podido encontrar lo siguiente:
// Se debe inicializar el mouse con la INT 0X33, Y PEDIR EL SERVICIO QUE NECESITES HE AQUI LOS SERVICIOS:
// SERVICIO DESCRIPCION
// 00h INICIALIZA EL DRIVER DEL RATON
// 01h MUESTRA EL RATON
// 02h ESCONDE EL CURSOR DEL RATON
// 03h OBTIENE LA POSICION Y EDO DEL RATON
// 04h AJUSTA LA POSICION DEL RATON
// 07h RESTRINGE EL MOVIMIENTO DEL MOUSE HORIZONTAL
// 08h RESTRINGE EL MOVIMIENTO DEL MOUSE VERTICAL
Por lo demas espero me puedan ayudar y muchas gracias de antemano
PD: Tambien estoy adjuntando el codigo por si cualquiera desea bajarlo y usarlo.