Dans une application où je dois manipuler différemment beaucoup de clés, je veux gérer tous les cas dans WM_KEYDOWN et ne pas utiliser WM_CHAR du tout. Est-il possible d'obtenir le caractère ASCII/UNICODE correct à partir d'une séquence de clés virtuelles fournies par WM_KEYDOWN au lieu de se fier à TranslateMsg/WM_CHAR plus régulier? Par exemple: l'application devrait être capable de gérer Shift-B d'une manière totalement différente de celle d'un B normal de CTRL-B. En utilisant MapVirtualKey, vous n'utilisez pas l'état des touches Maj, Ctrl et Alt, ou du moins pas que je puisse voir. Comme Leo Davidson a répondu: vous pouvez utiliser l'appel ToUnicode pour effectuer vous-même la conversion VK -> Unicode.Obtention du caractère Unicode dans WM_KEYDOWN
1
A
Répondre
6
WM_KEYDOWN traite des codes de caractères, ce qui signifie essentiellement des touches physiques sur le clavier.
Si vous souhaitez gérer les caractères Unicode, saisissez WM_CHAR (caractères Unicode 16 bits, en supposant que votre fenêtre est elle-même unicode) ou WM_UNICHAR (caractères Unicode 32 bits).
EDIT: Si vous souhaitez effectuer vous-même la conversion, utilisez l'API ToUnicode.
Questions connexes
- 1. Obtention du caractère supprimé
- 2. regex caractère unicode dans vim
- 3. Noms UNICODE à partir du caractère
- 4. Remplacer le caractère unicode
- 5. Unicode Caractère Affichage Problème
- 6. Recherche du codecode Unicode d'un caractère dans GNU Emacs
- 7. Convertir "php unicode" en caractère
- 8. WM_KEYDOWN confusion
- 9. Caractère unicode Tab/LF/CR
- 10. WM_KEYDOWN: comment l'utiliser?
- 11. Haskell: convertir un entier unicode en caractère unicode réel
- 12. Traiter un caractère Unicode plus diacritique comme un seul caractère?
- 13. Impossible de traduire le caractère Unicode
- 14. java comment écrire un caractère Unicode 0x13?
- 15. Que représente le caractère Unicode ?
- 16. Besoin d'aide avec WM_KEYDOWN
- 17. Conversion d'un caractère unicode de l'octet
- 18. Impossible de traduire le caractère Unicode '\ uDA22'
- 19. Où puis-je trouver ce caractère Unicode?
- 20. comment afficher le caractère unicode dans l'application iphone
- 21. Afficher la valeur de code Unicode d'un caractère dans Eclipse
- 22. Bloc Unicode d'un caractère en python
- 23. Convertir un caractère Unicode en texte correspondant?
- 24. Affichage d'un caractère Unicode dans le composant de texte java
- 25. Comment convertir un caractère accentué dans une chaîne unicode en son code de caractère Unicode en utilisant Python?
- 26. Caractère Unicode non affiché dans le rapport de JasperReports
- 27. Connaître le nom de caractère Unicode dans .Net
- 28. Comment trouver/remplacer (caractère de remplacement Unicode) dans ColdFusion?
- 29. WM_CHAR non-unicode dans les fenêtres unicode
- 30. Obtention de la langue pour les programmes non-Unicode
Ce que je sais. J'ai posé la question pour voir si la logique de TranslateMsg qui envoie le WM_CHAR est également obtenue en utilisant un autre chemin n'utilisant pas de messages Windows (comme un appel API) –
@Ritsaert Hornstra: Assez juste. Voir ma modification. –
Cela semble prometteur: va l'essayer directement! Apprendre un nouvel appel WinAPI tous les jours .. –