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

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
Winuser.h (y compris Windows.h)

Voir aussi

Référence

HIWORD

LOWORD

Conceptuel

Menus