Pregunta

Estoy trabajando en una aplicación de documentos y parte de esta aplicación. Tengo que agregar soporte para leer los eventos de teclado presionado y reemplazar el conjunto de caracteres predefinidos si esa entrada del teclado coincide con la forma corta / prefijada. word.La aplicación real se ha implementado en C ++.

Por favor, dénos su opinión sobre cómo implementar esto. ¿Hay algún programa de muestra de C ++ para referencia? algoritmo / conceptos?

¿Fue útil?

Solución

C ++ estándar no admite eventos de pulsación de tecla, por lo que tendrá que ver una función del sistema operativo o una función de marco. Los marcos portátiles de C ++ como wxWidgets o Qt admiten eventos de pulsación de teclas en Windows, Mac y Linux.

Otros consejos

Aprenda cómo capturar los eventos keydown usando wxWidgets api, tal vez aquí: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandling.viewview// > Preste atención a los eventos clave . Implemente un interruptor en C ++ para ver qué combinación de teclas se presionó, y configure el texto para la edición correspondiente. Lo que estoy pensando aquí es convertir las teclas CTRL-SHIFT-A en un texto como Ctrl-Shift-a en un cuadro de edición.

Si está pensando en convertir una combinación de caracteres a otro, por ejemplo, kanji o hiragana, el algoritmo podría ser más largo y se necesitarían más estructuras de datos.

Si está en Windows, puede usar la llamada a la API GetAsyncKeystate y observar los cambios, o usar los ganchos de teclado de bajo nivel (un poco más complicados) (funciones relacionadas con CreateHookEx +).

En DOS (o posiblemente en Linux) puede usar _kbhit en conio.h en modo consola, generalmente lo guardo en un bucle (while (! _ kbhit ());) para presionar una tecla, presione cualquier tecla para continuar " pero el uso de _getch puede recuperar la tecla que se presionó

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top