Hola a todos. Veréis, estoy intentando acoplarle a mi futuro juego una consola de comandos del estilo de la del Quake. Al principio el teclado actuaba como si estuviera en inglés, pero lo resolví traduciendo los scancodes de DirectInput con las funciones de Win32 MapVirtualKeyEx y ToAsciiEx, según explican aquí: http://www.gamedev.net/reference/programmi...tures/scan2asc/
Con eso salen bien los símbolos, las eñes, etc. Lo que no me funciona ahora son lo que Windows llama "teclas muertas", es decir, acentos, diéresis y similares. La documentación de la función ToAsciiEx asegura que si se le da a traducir un scancode y tecla virtual correspondientes a una tecla muerta, el valor de retorno es negativo; pero cuando pulso la tecla del acento, de eso nada, me lo traduce directamente como dos acentos seguidos.
La documentación en cuestión también dice que "The parameters supplied to the ToAsciiEx function might not be sufficient to translate the virtual-key code, because a previous dead key is stored in the keyboard layout." Parece insinuar que para traducir las teclas muertas hay que hacer más cosas, pero no especifica.
¿Alguien tiene alguna idea de qué es lo que estoy haciendo mal?
Con eso salen bien los símbolos, las eñes, etc. Lo que no me funciona ahora son lo que Windows llama "teclas muertas", es decir, acentos, diéresis y similares. La documentación de la función ToAsciiEx asegura que si se le da a traducir un scancode y tecla virtual correspondientes a una tecla muerta, el valor de retorno es negativo; pero cuando pulso la tecla del acento, de eso nada, me lo traduce directamente como dos acentos seguidos.
La documentación en cuestión también dice que "The parameters supplied to the ToAsciiEx function might not be sufficient to translate the virtual-key code, because a previous dead key is stored in the keyboard layout." Parece insinuar que para traducir las teclas muertas hay que hacer más cosas, pero no especifica.
¿Alguien tiene alguna idea de qué es lo que estoy haciendo mal?