arvin
Visitante
|
 |
« Respuesta #2 en: Marzo 02, 2006, 09:14:52 » |
|
Hola leahcim, mira, codelogman dejo la mayoria de estas funciones basicas ya.
aqui te dejo una libreria que te resultara interesante para tu proyecto:
// Libreria relacionada con el uso y manipulacion // del raton a travez de la interrupcion 33h del DOS
// Instala por defecto el raton // regresando un valor (0< Raton Act.y no de botones -1 Raton Desact. // Botones // 0 Izquierdo 1 Derecho 2 centro // 1 Izquierdo 2 Derecho 4 Centro
int ins_raton(void) { int edo; asm{ push ax; push bx; push cx; push dx; mov ax,0; int 33h; mov edo,ax; pop dx; pop cx; pop bx; pop ax; } return(edo); }
// muestra en pantalla el puntero del ratўn si esta instalado.
void act_raton(void) { asm{ push ax; push bx; push cx; push dx; mov ax,1; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// oculta el puntero del raton
void desc_raton(void) { asm{ push ax; push bx; push cx; push dx; mov ax,2; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// duvuelve el estado del raton (boton que esta pulsado, y posiciўn
void edo_raton(int &x,int &y,int &boton) { int tb,tx,ty; asm{ push ax; push bx; push cx; push dx; mov ax,3; mov bx,[bp+4]; int 33h; mov tb,bx; mov tx,cx; mov ty,dx; pop dx; pop cx; pop bx; pop ax; } boton=tb; x=tx; y=ty; }
// coloca el curor en la coordenada preestablecida
void ratonxy(int x,int y) { asm{ push ax; push bx; push cx; push dx; mov ax,4; mov cx,[bp+4]; mov dx,[bp+6]; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// lee la informaciўn del Јltimo botўn pulsado
void inf_raton(int bot,int &np,int &x,int &y,int &boton) { int npt,xt,yt,bt; asm{ push ax; push bx; push cx; push dx; mov ax,5; mov bx,[bp+4]; int 33h; mov npt,bx; mov xt,cx; mov yt,dx; mov bt,ax; pop dx; pop cx; pop bx; pop ax; } np=npt; x=xt; y=yt; boton=bt; }
// Lee la informaciўn del botўn liberado
void infl_raton(int bot,int &np,int &x,int &y,int &boton) { int npt,xt,yt,bt; asm{ push ax; push bx; push cx; push dx; mov bx,[bp+4]; mov ax,6; int 33h; mov npt,bx; mov xt,cx; mov yt,dx; mov bt,ax; pop dx; pop cx; pop bx; pop ax; } x=xt; y=yt; np=npt; boton=bt; }
// fija pos max y min horizontalmente
void maxmin_x(int max,int min) { asm{ push ax; push bx; push cx; push dx; mov cx,[bp+4]; mov dx,[bp+6]; mov ax,7; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// fija pos max y min verticalmente
void maxmin_y(int max,int min) { asm{ push ax; push bx; push cx; push dx; mov cx,[bp+4]; mov dx,[bp+6]; mov ax,8; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// fija el bloque del puntero grafico
void fija_bloque(int max,int min,int dir,int desp) { asm{ push ax; push bx; push cx; push dx; mov bx,[bp+4]; mov cx,[bp+6]; mov dx,[bp+8]; mov es,[bp+10]; mov ax,9; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// Atributos del raton en texto
void punt_texto(int tc,int c,int f) { asm{ push ax; push bx; push cx; push dx; mov ax,10; mov bx,[bp+4]; mov cx,[bp+6]; mov dx,[bp+8]; int 33h; pop dx; pop cx; pop bx; pop ax; } }
// Lee contador de desplazamiento del raton
void desp_raton(int &x,int &y) { int tx,ty; asm{ push ax; push bx; push cx; push dx; mov ax,11; int 33h; mov tx,cx; mov ty,dx; pop dx; pop cx; pop bx; pop ax; } x=tx; y=ty; }
int posraton(int x,int y,int x1,int y1,short bot) { int xaux,yaux; edo_raton(xaux,yaux,bot); return(((xaux>=x)&&(xaux<=x1)&&(yaux>=y)&&(yaux<=y1))); }
int posraton_bt(int x,int y,int x1,int y1,short bot) { int bt,xaux,yaux; edo_raton(xaux,yaux,bt); switch(bot){ case 0:bot=1; break; case 1:bot=2; break; case 2:bot=4; } return(((xaux>=x)&&(xaux<=x1)&&(yaux>=y)&&(yaux<=y1))&&(bt==bot)); }
arvin
|