Message WM_COMMAND
Envoyé lorsque l’utilisateur sélectionne un élément de commande dans un menu, lorsqu’un contrôle envoie un message de notification à sa fenêtre parente ou lorsqu’une séquence de touches d’accélérateur est traduite.
#define WM_COMMAND 0x0111
Paramètres
-
wParam
-
Pour une description de ce paramètre, consultez Remarques.
-
lParam
-
Pour une description de ce paramètre, consultez Remarques.
Valeur retournée
Si une application traite ce message, elle doit retourner à zéro.
Exemple
BOOL AboutDlg (
HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
BOOL bRet = FALSE;
switch (message)
{
case WM_INITDIALOG:
bRet = TRUE;
break;
case WM_COMMAND:
if (wParam == IDOK ||
wParam == IDCANCEL)
{
EndDialog(hDlg, TRUE);
bRet = TRUE;
}
break;
}
return bRet;
}
Exemple tiré des exemples classiques Windows sur GitHub.
Notes
L’utilisation des paramètres wParam et lParam est résumée ici.
Source du message | wParam (mot élevé) | wParam (mot bas) | lParam |
---|---|---|---|
Menu | 0 | Identificateur de menu (IDM_*) | 0 |
Accélérateur | 1 | Identificateur d’accélérateur (IDM_*) | 0 |
Control | Code de notification défini par le contrôle | Identificateur de contrôle | Descripteur de la fenêtre de contrôle |
Menus
Si une application active un séparateur de menu, le système envoie un message WM_COMMAND avec le mot bas du paramètre wParam défini sur zéro lorsque l’utilisateur sélectionne le séparateur.
Si un menu est défini avec une valeur MENUINFO.dwStyle de MNS_NOTIFYBYPOS, WM_MENUCOMMAND est envoyé au lieu de WM_COMMAND.
Accélérateurs
Les séquences de touches d’accélérateur qui sélectionnent des éléments dans le menu de la fenêtre sont traduites en messages WM_SYSCOMMAND.
Si une séquence de touches d’accélérateur se produit qui correspond à un élément de menu lorsque la fenêtre propriétaire du menu est réduite, aucun message WM_COMMAND n’est envoyé. Toutefois, si une séquence de touches d’accélérateur se produit qui ne correspond à aucun des éléments du menu de la fenêtre ou dans le menu de la fenêtre, un message WM_COMMAND est envoyé, même si la fenêtre est réduite.
Spécifications
Condition requise | Value |
---|---|
Client minimal pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|