Domanda

Sto lavorando su un'applicazione per documenti e parte di questa applicazione devo aggiungere il supporto per leggere gli eventi premuti sulla tastiera e sostituire i set di caratteri predefiniti se quella voce della tastiera corrisponde al formato breve pre-defind / word.L'applicazione reale è stata implementata in C ++.

Per favore, dammi le tue opinioni su come implementarlo. Esiste un programma C ++ di esempio per riferimento? algoritmo / concetti?

È stato utile?

Soluzione

Il C ++ standard non supporta gli eventi di pressione dei tasti, quindi dovrai guardare una funzione del sistema operativo o una funzione del framework. I framework C ++ portatili come wxWidgets o Qt supportano eventi keypress su Windows, Mac e Linux.

Altri suggerimenti

Scopri come catturare gli eventi di keydown usando api wxWidgets, forse qui: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview presta attenzione agli eventi chiave . Implementa un interruttore in C ++ per vedere quale combinazione di tasti è stata premuta e imposta il testo sulla modifica di conseguenza. Quello a cui sto pensando qui è di convertire un tasto CTRL-MAIUSC-A in un testo come Ctrl-Shift-a in una casella di modifica.

Se stai pensando di convertire una combinazione di caratteri in altri personaggi, ad esempio kanji o hiragana, l'algoritmo potrebbe essere più lungo e sono necessarie più strutture di dati.

Se sei su Windows puoi usare la chiamata API GetAsyncKeystate e guardare le modifiche, oppure usare gli hook di tastiera di basso livello (leggermente più complicati) (funzioni correlate a CreateHookEx +).

In DOS (o eventualmente Linux) puoi usare _kbhit in conio.h in modalità console, di solito lo inserisco in un ciclo (mentre (! _ kbhit ());) per un " premi un tasto qualsiasi per continuare " ;, ma usando _getch puoi recuperare il tasto che è stato premuto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top