Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOIS en 10 Marzo 2015, 05:21 am



Título: Allegro 5 - estado del teclado
Publicado por: NOIS en 10 Marzo 2015, 05:21 am
Hola a todos,
Estoy intentando crear mis propias cajas de texto con C++/Allegro5 y necesitaría saber como detectar si una tecla está activa, como BLOQ_MAYUS o BLOQ_NUM sin tener que esperar a que el usuario haya pulsado la tecla para evaluar su estado.

Necesito un método que no sea el de Windows, uno propio de Allegro o uno de C++ que valga para varias plataformas.

Gracias de antemano.


Título: Re: Allegro 5 - estado del teclado
Publicado por: NOIS en 11 Marzo 2015, 17:02 pm
Ya encontré una solución más sencilla que lo que pretendía hacer, la dejo aquí por si a alguien le interesa.

No lo sabía, pero ayer buscando vi que hay un evento en A5 llamado ALLEGRO_EVENT_KEY_CHAR que registra los caracteres generados por la pulsación de las teclas y devuelve su valor en ASCII, así se puede crear una entrada de texto en tiempo real por si quisieramos pedir algún dato a los usuarios.

Un ejemplo podría ser este:

Código
  1. if(ev.type == ALLEGRO_EVENT_KEY_CHAR)
  2.        {      
  3.         end = str.strlength();      
  4.             if(key[BACKSPACE]) str = str.substr(0, end-1); // Para borrar el ultimo caracter si se presiona la tecla "BACKSPACE".
  5.             else
  6.             {
  7.                  str += (char)ev.keyboard.unichar;
  8.             }
  9.        }
  10.  

Espero que a alguien le sirva  ;)

Saludos!