Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Valor de la tecla Enter

Estas en el tema de Valor de la tecla Enter en el foro de C/C++ en Foros del Web. Hola a todos, veran soy bastante nuevo en esto de la programacion en C, y tambien es mi primer tema, espero me puedan ayudar en ...
  #1 (permalink)  
Antiguo 05/06/2013, 21:13
Avatar de omar10594  
Fecha de Ingreso: junio-2013
Ubicación: Mexico
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 3
Pregunta Valor de la tecla Enter

Hola a todos, veran soy bastante nuevo en esto de la programacion en C, y tambien es mi primer tema, espero me puedan ayudar en mi duda.

Veran estoy haciendo un juego en C (Un ajedrez), de hecho ya esta literalmente terminado, tengo un "Cuadro Selector" por asi llamarlo, que dependiendo de donde este cuando se presiona una tecla hace cierta accion, pero quiero usar la tecla enter para que realize la accion, lo hago con un switch, para que me entiendan mejor les pongo mas o menos lo que quiero.

Código C:
Ver original
  1. switch(getch())
  2. {
  3.            case KEY_UP:
  4.                     y-=100;
  5.                     break;
  6.            case KEY_DOWN:
  7.                     y+=100;
  8.                     break;
  9.            case KEY_F1:
  10.                     ...;
  11.                     break;
  12.            case tecla_enter:
  13.                     accion...;
  14.                     break;
  15. }

Entonces en donde dice "tecla_enter", que debo poner para que realize lo que le ponga en ese "case", intente ponerle un 13, que segun me dijeron era el valor de la tecla pero no me funciono, tambien intente poner '\n', y tampoco, ahora lo tengo con KEY_F2, y me funciona a la perfeccion, pero quiero que lo que ahora realizo con la tecla F2, pueda realizarlo con la tecla Enter.

Para todo el programa solo uso la libreria <winbgim.h>, nada mas, y uso Dev-C++ 5.4.1

De antemano, Gracias!, :D
  #2 (permalink)  
Antiguo 05/06/2013, 23:11
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 meses
Puntos: 22
Respuesta: Valor de la tecla Enter

Hola omar10594

Intenta de este modo:
Código C:
Ver original
  1. #define INTRO '\r'
  2. ...
  3.   switch(getch()) {
  4.     case INTRO  : printf("Intro"); break;
  5.     ...

Saludos
  #3 (permalink)  
Antiguo 05/06/2013, 23:54
Avatar de omar10594  
Fecha de Ingreso: junio-2013
Ubicación: Mexico
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 3
Respuesta: Valor de la tecla Enter

Hola, gracias por contestar, lo intente de esa manera y tampoco me funciona, por lo que veo es un problema mas bien de la libreria, pues hice un codigo sencillo y pequeño en donde capturaba el valor de una tecla presionada y que me lo presentara y decia 13, y si le pongo 13 en el case no me lo detecta, la diferencia en ambos casos radica principalmente en las librerias, en el programa sencillo lo hice con conio.h y stdio.h, pero en mi juego solo uso winbgim.h pues es con graficos, pero incluyo esas dos librerias en mi codigo y aun asi no me funciona, sera que no son compatibles entre si o algo por el estilo.

Aun asi seguire buscando a ver si encuentro algo.

~saludos~
  #4 (permalink)  
Antiguo 06/06/2013, 04:41
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: Valor de la tecla Enter

Código:
#include <stdio.h>
#include <conio.h>

#define ENTER 13

int main()
{
    switch (getch())
    {
    case 'a':
        printf("Has pulsado la A");
        break;
    case 'b':
        printf("Has pulsado la B");
        break;
    case 'c':
        printf("Has pulsado la C");
        break;

    //...

    case ENTER:
        printf("Has pulsado intro");
        break;
    }

    return 0;
}
Este ejemplo me funciona de maravilla, seguro que es problema del switch?
  #5 (permalink)  
Antiguo 06/06/2013, 16:48
Avatar de omar10594  
Fecha de Ingreso: junio-2013
Ubicación: Mexico
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 3
Respuesta: Valor de la tecla Enter

Claro a mi tambien me funciona, el problema es que yo abro una ventana grafica, entonces el Enter, lo debe detectar desde la ventana grafica, no desde la ventana normal.
Supongo que en conio.h esta el getch() para detectar teclas pulsadas desde la ventana normal, pero el getch() que yo uso es el que viene en winbgim.h, que mirando la libreria tiene solo las siguientes teclas.

Código C:
Ver original
  1. #define KEY_HOME       71
  2. #define KEY_UP         72
  3. #define KEY_PGUP       73
  4. #define KEY_LEFT       75
  5. #define KEY_CENTER     76
  6. #define KEY_RIGHT      77
  7. #define KEY_END        79
  8. #define KEY_DOWN       80
  9. #define KEY_PGDN       81
  10. #define KEY_INSERT     82
  11. #define KEY_DELETE     83
  12. #define KEY_F1         59
  13. #define KEY_F2         60
  14. #define KEY_F3         61
  15. #define KEY_F4         62
  16. #define KEY_F5         63
  17. #define KEY_F6         64
  18. #define KEY_F7         65
  19. #define KEY_F8         66
  20. #define KEY_F9         67

Y pues ahora veo claramente las unicas teclas que puedo usar, y son del 0 al 9 y el "." del teclado numerico (Sin tener el "Bloq. Num." Activado), y del F1 al F9, solamente. Para usar el Enter debere hacer alguna otra cosa extra, como ver, como detecta las teclas y entonces definir un nueva tecla y que la detecte.

~saludos~
  #6 (permalink)  
Antiguo 06/06/2013, 17:14
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Valor de la tecla Enter

Revisa esto:
http://todocporelinv.blogspot.com.ar...-valor-de.html
  #7 (permalink)  
Antiguo 09/06/2013, 17:13
Avatar de omar10594  
Fecha de Ingreso: junio-2013
Ubicación: Mexico
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 3
Respuesta: Valor de la tecla Enter

Hola, lo que dicen que haga en esa pagina es basicamente lo mismo que me dijeron mas arriba a la hora de capturar el valor de una tecla, pero me da el mismo resultado "13", y no me funciona en una ventana grafica. Igualmente gracias.

~saludos~
  #8 (permalink)  
Antiguo 10/06/2013, 06:12
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 meses
Puntos: 22
Respuesta: Valor de la tecla Enter

Hola omar10594.

Fijate si de este modo te funciona:
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<windows.h>
  3.  
  4. WORD ReadKey(void);
  5.  
  6. int main()
  7. {
  8.   WORD ch;
  9.  
  10.   ch = ReadKey();
  11.   printf("Presiono: ");
  12.   switch(ch) {
  13.     case VK_RETURN : printf("Intro");break;
  14.     case VK_UP     : printf("Up");break;
  15.     case VK_DOWN   : printf("Down");break;
  16.     case VK_LEFT   : printf("Left");break;
  17.     case VK_RIGHT  : printf("Right");break;
  18.     case 0x30      : printf("0"); break;
  19.       //  1,2,3,...
  20.     case 0x39      : printf("9"); break;
  21.     case 0x41      : printf("A");break;
  22.       // b,c,d,...
  23.     case 0x5A      : printf("Z");break;
  24.      //demás caracteres
  25.     }
  26.   getchar();
  27. }
  28.  
  29. WORD ReadKey(void)
  30. {
  31.   HANDLE InputHnd;
  32.   INPUT_RECORD InputRecord;
  33.   DWORD Count;
  34.  
  35.   if ((InputHnd=GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE)
  36.     while(ReadConsoleInput(InputHnd, &InputRecord, 1, &Count))
  37.       if(InputRecord.EventType == KEY_EVENT)
  38.         if(InputRecord.Event.KeyEvent.bKeyDown)
  39.           return InputRecord.Event.KeyEvent.wVirtualKeyCode;
  40. }
En este enlace, tenes los posibles resultados: Virtual-Key Codes .

Saludos.

Etiquetas: enter, funcion, int, programa, tecla, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:50.