Partager via


message WM_COMMAND

Envoyé lorsque l’utilisateur appelle un élément de commande à partir d’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 obtenir une description de ce paramètre, consultez Remarques.

lParam

Pour obtenir une description de ce paramètre, consultez Remarques.

Valeur retournée

Si une application traite ce message, elle doit retourner zéro.

Example

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 extrait d’exemples Windows classiques sur GitHub.

Remarques

L’utilisation des paramètres wParam et lParam est résumée ici.

Message Source 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
Contrôle Code de notification défini par le contrôle Identificateur de contrôle Gérer la fenêtre de contrôle

Dans la plupart des cas, il s’agit du message à écouter lorsqu’un utilisateur appelle une commande dans un menu. Toutefois, si un menu est défini avec une valeur MENUINFO.dwStyle de MNS_NOTIFYBYPOS, WM_MENUCOMMAND est envoyé au lieu de WM_COMMAND.

Si une application active un séparateur de menus, 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.

Accélérateurs

Les séquences de touches d’accélérateur qui sélectionnent des éléments dans le menu 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

Requirement Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
Header
Winuser.h (include Windows.h)

Voir aussi

Référence

HIWORD

LOWORD

Conceptuel

Menus