C/Visual C - Problemas con el MOUSE

 
Vista:

Problemas con el MOUSE

Publicado por jalbo (54 intervenciones) el 26/06/2001 21:16:00
Buenas:
Suponiendo que la función int Boton(void) ; retorne el nº de boton pulsado en el mouse, 0=ninguno, 1=izq. y 2 derecho.

int BotonP, Veces=0;
for (;;)
{
BotonP=0;
while (BotonP==0)
{
BotonP=Boton() ;
}
Veces++;
printf("%d", Veces) ;
// etc, etc.
}

La pregunta es: ¿como puede hacer que el ciclo de BotonP "tome" UNA y SOLA UNA pulsación de por ejemplo el boton izquierdo ?
Así como está el programa pulsas (supuestamente) UNA vez el izquierdo) pero el contador Veces no refleja esto.

Muchas gracias por tu colaboración

Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con el MOUSE

Publicado por Googol (255 intervenciones) el 29/06/2001 16:55:40
Si Boton() te dice el botón que ESTÁ pulsado, cuando tú lo pulsas saldrás del bucle, ejecutarás Veces++; darás una vuelta al for, y volverás a llegar al while().
Al llamar a Boton() que devuelve el botón que está pulsado, si no has sido rápido y has soltado el botón, te volverá a decir que está pulsado el botón izquierdo, y darás otra vuelta.
Parece que tú lo que quieres es que Boton() te diga cuando se ha pulsado, no cuando está pulsado.

int izquierdoPulsado = 0;
int BotonP, Veces = 0;
for (;;) {
BotonP=0;
while (BotonP==0) {
BotonP=Boton() ;
if (BotonP == 1) {
if (!izquierdoPulsado))
izquierdoPulsado = 1;
else
BotonP = 0; // El botón pulsado es el izquierdo, pero ya nos habíamos dado cuenta. No hacemos nada.
} // if (BotonP == 1)
else
// Para cuando detectemos que el botón se despulsa.
izquierdoPulsado = 0;
} // while
.....
} // for

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con el MOUSE

Publicado por jalbo (54 intervenciones) el 29/06/2001 19:23:47
Gracias por tu colaboración y excelente deducción, pero ya me habia dado cuenta de lo que hace el código (lo hice yo, je!)
El problema, como bien decis, es que soy medio lerdo para soltar el boton izquierdo.
De nuevo muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar