C/Visual C - capturar tecla

 
Vista:

capturar tecla

Publicado por andreafuhr (10 intervenciones) el 12/06/2006 13:47:01
Hola gente!
Estoy desarrollando un practico donde el user debe ingresar un codigo de 4 digitos pero si presiona ESC el sistema debe retornar al punto anterior; es decir que con ESC se cancela la carga de datos. Cómo puedo saber si presionaron la tecla ESC?
Mil 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:capturar tecla

Publicado por Juan (68 intervenciones) el 12/06/2006 14:44:00
Me imagino que bastara con saber el askii de esa tecla.
Yo lo que hacia para saber el askii de una tecla asi era colocar un getchar(), asignarlo a una variable, y despues imprimir ese valor como entero
char c = getchar()
cout << c
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

Na que ver con la pregunta

Publicado por Nelek (816 intervenciones) el 12/06/2006 14:48:01
Jajaja, hemos contestado casi a la vez, y encima cada uno en un tema, tu c++ y yo el VC++ y el BC++. A eso le llamo yo trabajo en equipo :P

jajaja

Bueno, amos a seguir currando que ya me he despejado un poco.
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:Na que ver con la pregunta

Publicado por Juan (68 intervenciones) el 12/06/2006 15:02:27
Eso me alegra de este foro jejejejeje pero hay otros que de pana son un poco insoportables. Y bueno sigamos trabajando, a ver que dira luego fernando jejjeejej
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:capturar tecla

Publicado por Nelek (816 intervenciones) el 12/06/2006 14:46:32
Depende en que programes, si es en VC++ o en BC++ o algun programa con eventos... Tienes el evento OnKeyPress (). Si no... pues nada, lo haces a pelo.

La cosa está en que se tiene comprobar si la tecla ESC ha sido apretada y eso se hace con un simple if ( ... )

Si estas en VC++ es:

void CFPSView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (nChar)
{
case VK_ESCAPE:
//Lo que quieras hacer

case .... //Si necesitas mas casos
}

si solo es una comprobacion:
void CFPSView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar == VK_ESCAPE)
//Lo que quieras hacer
else
...
}

Para Borland C++ es algo distinto. Lo siento pero no recuerdo la declaracion de la funcion OnKeyPress (pero existe), cuando yo lo hice tenia que comprobar el ENTER y lo hice con < if (OnKeyPress () == 13) > //13 es el valor del return
busca cual es el del escape y como se usa actualmente esa funcion (yo estoy hablando de BC++ 1.7, asi que... algo habran cambiado)
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:capturar tecla

Publicado por fernando.gomez (1603 intervenciones) el 12/06/2006 18:04:48
Si no mal recuerdo, Borland C++ Builder también soporta MFC, así que el código anterior es válido para Borland...

Por otro lado, si no quieres emplear MFC (que aquí Nelek le llama VC++ aunque MFC se pueda emplear con cualquier compilador), tendrías que emplear directamente el API (también con cualquier compilador se puede) y capturar el mensaje WM_CHAR en tu procedimiento de mensajes. Si LPARAM -convertido a TCHAR- es igual a VK_ESCAPE, haces lo que tengas que hacer.

Por cierto, recordar que el ENTER en Windows es la conjunción de dos códigos, el de salto de línea y el de retorno de carro.
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:capturar tecla

Publicado por Juan (68 intervenciones) el 12/06/2006 18:20:11
Cierto, los askii 13 y 10 (o viceversa).
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:capturar tecla

Publicado por andreafuhr (10 intervenciones) el 12/06/2006 18:34:42
No es C++. Es simplemente en Borland C. Es bajo DOS.
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:capturar tecla

Publicado por andreafuhr (10 intervenciones) el 12/06/2006 18:34:43
No es C++. Es simplemente en Borland C. Es bajo DOS.
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:capturar tecla

Publicado por fernando.gomez (1603 intervenciones) el 12/06/2006 18:58:41
Pues entonces sigue mi recomendación (si sabes que Win32 API fué escrita para C, verdad?).

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:capturar tecla

Publicado por fernando.gomez (1603 intervenciones) el 12/06/2006 19:01:06
Ahora bien, si estás trabajando con consola, supongo que tendrías que hacer un GetWindow para obtener el handle -HWND- y entonces poder "subclasear" los mensajes para que captures el WM_CHAR como te mencioné.

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:capturar tecla

Publicado por Armando (127 intervenciones) el 15/06/2006 08:14:48
chat t;

t= inport(0x60); //lectura directa del teclado.

printf("Codigo de la tecla: %i", t); //tratamos a t como un entero
//para ver el codigo del teclado.
getch();
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