Eh bien, this est la grande liste des codes de clés virtuelles.
CTRL-S va être envoyé par 2 comme WM_KEYDOWN
messages - un message lorsque la touche Ctrl est pressée (VK_LCONTROL
ou VK_RCONTROL
) suivi d'un 0x53
pour la touche « S ». Plutôt que de traiter les deux messages, attendez le message de la touche 'S', puis appelez le GetKeyState en utilisant la valeur magique VK_CONTROL (autre que vous auriez besoin de tester individuellement pour les touches de contrôle gauche et droite) pour voir si le S a été pressé avec CTRL maintenu enfoncé.
-
De toute évidence, les messages du clavier sont envoyés directement à la fenêtre qui a le focus. Pour que les combinaisons d'accélérateurs fonctionnent au niveau de l'application, vous devez vérifier les messages avant de les envoyer dans la fenêtre de mise au point, c'est-à-dire dans votre pompe de messages. Voir la documentation pour TranslateAccelerator.
Si vous souhaitez gérer des pressions de touche à l'échelle du système, les autres réponses pointent vers l'api de raccourci clavier. Lorsque WPARAM est égal au code VTR CTRL, définissez un bool dans l'état de votre objet.
Qu'est-ce que je fais est un autre contrôle mis à part le hWnd? – jmasterx
Pour gérer les combinaisons ctrl-X, vous utiliseriez l'API de l'accélérateur. Systemwide - le raccourci api. –