• Lunes 23 de Diciembre de 2024, 17:46

Autor Tema:  Contar Cada Vez Que Toco Una Tecla  (Leído 1091 veces)

McGrady01

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Contar Cada Vez Que Toco Una Tecla
« en: Viernes 10 de Agosto de 2007, 05:49 »
0
Hola a todos!!

Estoy intentando hacer un programita muy sencillo que simplemente sume +1 cada vez que toque una tecla. Pero el problema es que si toco la tecla y la dejo pulsada me va sumando +1 cada vez, y yo solo quiero que me sume una vez +1 aunque lo deje pulsado.

El codigo que tengo es:

Código: Text
  1. int suma(int res1)
  2. {
  3.   if (GetAsyncKeyState(39)!=0)
  4.   {
  5.     res1++;
  6.     printf("%d\n",res1);
  7.   }
  8.   return res1;
  9. }
  10.  
  11. void main()
  12. {
  13.   int res = 0;
  14.   int res1;
  15.   while(res < 10)
  16.   {
  17.     res1 = res;  
  18.     res = suma(res1);
  19.   }
  20. }
  21.  

Como se podria hacer? Algun parametro en la funcion GetAsyncState?

Gracias!  ;)

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Contar Cada Vez Que Toco Una Tecla
« Respuesta #1 en: Viernes 10 de Agosto de 2007, 22:08 »
0
Agrega una variable que te permita saber el estado anterior de la tecla, si estaba pulsada antes, no sumas, si no estaba pulsada la ocasión anterior, entonces si cuentas :).

Código: Text
  1.  
  2. int suma(int res1)
  3. {
  4.   static bool soltada = false;
  5.   if (GetAsyncKeyState(VK_LCONTROL)!=0)
  6.   {
  7.     if ( soltada == true )
  8.     {
  9.       res1++;
  10.       printf("%d\n",res1);
  11.       soltada = false;
  12.     }
  13.   }
  14.   else
  15.   {
  16.   soltada = true;
  17.   }
  18.   return res1;
  19. }
  20.  
  21.  
La imaginación es el límite.
Hardware & Software | Mexchip

McGrady01

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Contar Cada Vez Que Toco Una Tecla
« Respuesta #2 en: Viernes 10 de Agosto de 2007, 22:58 »
0
Muchas Gracias!!  :)