WM_LBUTTONDOWN message

Publié lorsque l’utilisateur appuie sur le bouton gauche de la souris alors que le curseur se trouve dans la zone cliente d’une fenêtre. Si la souris n’est pas capturée, le message est publié dans la fenêtre située sous le curseur. Sinon, le message est publié dans la fenêtre qui a capturé la souris.

Une fenêtre reçoit ce message via sa fonction WindowProc .

#define WM_LBUTTONDOWN                  0x0201

Paramètres

wParam

Indique si diverses clés virtuelles sont hors service. Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
MK_CONTROL
0x0008
La touche CTRL est arrêtée.
MK_LBUTTON
0x0001
Le bouton gauche de la souris est vers le bas.
MK_MBUTTON
0x0010
Le bouton central de la souris est désactivé.
MK_RBUTTON
0x0002
Le bouton droit de la souris est désactivé.
MK_SHIFT
0x0004
La touche MAJ est en panne.
MK_XBUTTON1
0x0020
Le premier bouton X est désactivé.
MK_XBUTTON2
0x0040
Le deuxième bouton X est en panne.

lParam

Le mot d’ordre inférieur spécifie la coordonnée x du curseur. La coordonnée est relative à l’angle supérieur gauche de la zone cliente.

Le mot d’ordre supérieur spécifie la coordonnée y du curseur. La coordonnée est relative à l’angle supérieur gauche de la zone cliente.

Valeur retournée

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

Exemple

LRESULT CALLBACK WndProc(_In_ HWND hWnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
    POINT pt;

    switch (msg)
    {

    case WM_LBUTTONDOWN:
            {
                pt.x = GET_X_LPARAM(lParam);
                pt.y = GET_Y_LPARAM(lParam);
            }
        }
        break;

    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    return 0;
}

Pour plus d’exemples, consultez Exemples Windows Classic sur GitHub.

Notes

Comme indiqué ci-dessus, la coordonnée x est dans l’ordre inférieur de la valeur de retour ; la coordonnée y est dans l’ordre court élevé (les deux représentent des valeurs signées , car elles peuvent prendre des valeurs négatives sur les systèmes avec plusieurs moniteurs). Si la valeur de retour est affectée à une variable, vous pouvez utiliser la macro MAKEPOINTS pour obtenir une structure POINTS à partir de la valeur de retour. Vous pouvez également utiliser la macro GET_X_LPARAM ou GET_Y_LPARAM pour extraire la coordonnée x ou y.

Important

N’utilisez pas les macros LOWORD ou HIWORD pour extraire les coordonnées x et y de la position du curseur, car ces macros retournent des résultats incorrects sur les systèmes avec plusieurs moniteurs. Les systèmes avec plusieurs moniteurs peuvent avoir des coordonnées x et y négatives, et LOWORD et HIWORD traitent les coordonnées comme des quantités non signées.

Pour détecter que la touche ALT a été enfoncée, vérifiez si GetKeyState avec VK_MENU< 0. Notez qu’il ne doit pas s’agir de GetAsyncKeyState.

Spécifications

Condition requise 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]
En-tête
Winuser.h (inclure Windowsx.h)

Voir aussi

Référence

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

Conceptuel

Entrées de la souris

Autres ressources

MAKEPOINTS

POINTS