Question

Je travaille sur une application de document et une partie de cette application. Je dois ajouter un support pour lire les événements déclenchés au clavier et remplacer le jeu de caractères prédéfini si cette entrée au clavier correspond à la forme abrégée pré-définie / L’application a été implémentée en C ++.

Donnez-moi votre avis sur la manière de mettre en œuvre cette solution. Existe-t-il un exemple de programme C ++ pour référence? algorithme / concepts?

Était-ce utile?

La solution

Le standard C ++ ne prend pas en charge les événements de frappe. Vous devrez donc examiner une fonction du système d'exploitation ou une fonction de structure. Les infrastructures C ++ portables telles que wxWidgets ou Qt prennent en charge les événements de pression de touche sous Windows, Mac et Linux.

Autres conseils

Apprenez à capturer les événements de touches en utilisant l’API wxWidgets, peut-être ici: http://docs.wxwidgets.org/stable/wx_eventhandlingov/index.html > faites attention aux événements clés . Implémentez un commutateur en C ++ pour voir quelle combinaison de touches a été utilisée et définissez le texte à modifier en conséquence. Ce que je pense ici est de convertir une touche CTRL-SHIFT-A en un texte comme Ctrl-Shift-a dans une zone de texte.

Si vous envisagez de convertir une combinaison de caractères en un autre caractère, par exemple kanji ou hiragana, l'algorithme peut être plus long et nécessiter davantage de structures de données.

Si vous êtes sous Windows, vous pouvez utiliser l'appel de l'API GetAsyncKeystate et surveiller les modifications, ou utiliser les crochets du clavier de bas niveau (légèrement plus compliqué) (fonctions connexes à CreateHookEx +).

Sous DOS (ou éventuellement Linux), vous pouvez utiliser _kbhit dans conio.h en mode console, je le colle généralement dans une boucle (while (! _ kbhit ());); pour appuyer sur n’importe quelle touche pour continuer, mais en utilisant _getch peut récupérer la touche sur laquelle vous avez appuyé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top