Pergunta

Eu estou trabalhando em um aplicativo de documento e parte deste aplicativo eu tenho para adicionar suporte para ler o teclado pressionado eventos e substituir os caracteres pré-definidos estabelecidos se que a entrada de teclado é partida com o formulário de pré-defind curto / word.The aplicação real foi implementado em C ++.

Por favor me fornecer seus pensamentos sobre como implementar isso. Existe algum programa de amostra C ++ para referência? algoritmo / conceitos?

Foi útil?

Solução

não

padrão C ++ não suporta eventos keypress, então você vai ter que olhar para qualquer uma função de OS, ou uma função de quadro. Portátil C ++ estruturas como wxWidgets ou eventos apoio keypress Qt no Windows, Mac e Linux.

Outras dicas

Saiba como pegar os eventos KeyDown usando wxWidgets api, talvez aqui: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview prestar atenção ao principais eventos . Implementar um switch em C ++ para ver qual a combinação tecla foi pressionada, e definir o texto para a edição em conformidade. O que eu estou pensando aqui é para converter um Ctrl-Shift-A pressão de tecla para um texto como Ctrl-Shift-a em uma caixa de edição.

Se você está pensando em converter uma combinação de caracteres para outro personagem, por exemplo kanji ou hiragana, o algoritmo poderia ser mais longo e mais estruturas de dados necessário.

Se você estiver no Windows, você pode usar a chamada GetAsyncKeyState API e relógio para mudanças, ou use os ganchos de teclado de baixo nível (um pouco mais complicado) (CreateHookEx + funções relacionadas).

Sob DOS (ou possivelmente Linux) você pode usar _kbhit em conio.h no modo console, eu costumo ficar isso em um loop (while (_ kbhit ());!) Para um "pressione qualquer tecla para continuar", mas usando _getch pode recuperar a chave que foi pressionado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top