Exécuter une tâche suite à un choix de l'utilisateur d'une option de menu
Le message : WM_COMMAND peut vous indiquez l'option de menu sur lequel l'utilisateur a cliqué. Cependant, un problème se pose, ce message peut aussi être envoyé par d'autres contrôles.
L'ennui vient du numéro d'identificateur de l'objet que vous retrouvez dans wParam. Ce numéro peut être identique entre une option de menu et un contrôle comme un bouton.
Il faut donc par sécurité toujours vérifier d'où vient ce message:
En fait, rien de plus simple. Dans le cas d'un menu, lParam sera à NULL. Le problème est donc vite résolu:
Lorsque la procédure de gestion des messages reçoit un message WM_COMMAND, il faut vérifier la valeur de lParam. Si NULL, traiter un message provenant d'un menu, sinon, traiter un message de contrôle.
Voici un exemple de programme: