C/Visual C - TECLADO EN C

 
Vista:

TECLADO EN C

Publicado por OSCAR (14 intervenciones) el 05/06/2007 00:00:56
En primer lugar, espero que la esten pasando de lo mejor. Únicamente necesito saber, como capturar las teclas de funciones especiales en C, por ejemplo: las cursoras hacia arriba, hacia abajo, derecha e izquierda.... Si alguien me pudiera mandar el codigo, le estaré infinitamente agradecido.... muchas gracias.....
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:TECLADO EN C

Publicado por fernando.gomez (1603 intervenciones) el 05/06/2007 01:03:32
Cuando presionas la tecla, digamos, flecha derecha, se envía un mensaje con el caracter asociado. El PreTranslateMessage y DispatchMessage se encargan de cambiar códigos binarios, de tal suerte que a tu ventana llega el mensaje WM_KEYPRESS. En el WPARAM te llega el código del mensaje, mientras que en el LPARAM, te llega información adicional (de los bits 0 a 15 las veces que se repitió el mensaje por dejar la tecla presionada, 16-23 indican el código de escaneo, el bit 29 indica el código de contexto: 1 si ALT estaba presionada, etc; el bit 30 determina el estado de la tecla antes de que se enviara este mensaje: 1 si la tecla estaba presionada; y finalmente el bit 31 indica el estado de transición: 1 si la tecla está siendo soltada).

Así en tu función que captura los mensajes de la ventana, bastaría con agregar lo siguiente al "switch":

int nTeclaPresionada;

switch (nMsg)
{
...
case WM_KEYPRESS:
nTeclaPresionada = (int)wParam;
if (nTeclaPresionada == VK_LEFT)
// se presionó la flecha izquierda, hacer algo
;
else if (nTeclaPresionada == VK_RIGHT)
// se presionó la flecha derecha, hacer algo
;
// etc
break;
}

Saludos.
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:TECLADO EN C

Publicado por OSCAR (14 intervenciones) el 05/06/2007 01:11:06
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

RE:TECLADO EN C

Publicado por OSCAR (14 intervenciones) el 05/06/2007 01:31:11
Buena tarde Fernando: te cuento que intente compilar este codio pero no me funciono y me dice que los simbolos WM_KEYPRESS, wParam, y VK_LEFT, no estan definidos en la funcion main:... ¿Cual sera el problemas?... estare esperando tu ayuda... Graciaas
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:TECLADO EN C

Publicado por fernando.gomez (1603 intervenciones) el 05/06/2007 19:22:13
¿Sí incluíste el archivo <windows.h>? Por supuesto, estoy asumiendo que estás creando una aplicación para Windows. Y como tal, no deberías tener una función main, sino WinMain ó _tWinMain si UNICODE está definido.
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