Comment désactiver le comportement normal de la touche Alt?

Normalement, la touche Alt ouvre le menu sous Windows.

J’ai besoin que cela soit désactivé, car j’ai besoin de la touche Alt pour mon application. (C’est un émulateur de vieil ordinateur, je dois donc imiter son comportement.) Je l’écris dans une API Windows pure. Je suppose donc qu’un message doit être envoyé et doit être désactivé, ignoré ou ignoré.

Alt + Tab n’est pas un problème, ainsi que d’autres touches système et combinaisons de touches, je dois juste ignorer Alt quand il ouvre le menu.

(Mon application utilise DirectInput pour lire les touches, donc cela fonctionne bien. Je dois juste désactiver la fonctionnalité qui ouvre le menu avec la touche Alt. J’ouvrirai le menu en utilisant la souris.)

Que diriez-vous de vérifier WM_SYSCOMMAND et lorsque wParam est SC_KEYMENU , renvoyez 0?

Mise à jour / solution exacte:

 if(wParam==SC_KEYMENU && (lParam>>16)<=0) return 0; return DefWindowProc(hwnd, message, wParam, lParam); 

Description: Si lParam>>16 est positif, le menu est activé à l'aide de la souris. Lorsqu'il est égal à zéro ou négatif, le menu est activé à l'aide de la touche Alt ou Alt + quelque chose.