Partilhar via


WM_LBUTTONDOWN mensagem

Postado quando o usuário pressiona o botão esquerdo do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.

Uma janela recebe esta mensagem através da sua função WindowProc.

#define WM_LBUTTONDOWN                  0x0201

Parâmetros

wParam

Indica se várias chaves virtuais estão inativas. Este parâmetro pode ser um ou mais dos seguintes valores.

Valor Significado
MK_CONTROL
0x0008
A tecla CTRL está inativa.
MK_LBUTTON
0x0001
O botão esquerdo do rato está inativo.
MK_MBUTTON
0x0010
O botão do meio do mouse está para baixo.
MK_RBUTTON
0x0002
O botão direito do rato está inativo.
MK_SHIFT
0x0004
A tecla SHIFT está inativa.
MK_XBUTTON1
0x0020
O XBUTTON1 está em baixa.
MK_XBUTTON2
0x0040
A XBUTTON2 está em baixa.

lParam

A palavra de ordem baixa especifica a coordenada x do cursor. A coordenada é relativa ao canto superior esquerdo da área do cliente.

A palavra de ordem alta especifica a coordenada y do cursor. A coordenada é relativa ao canto superior esquerdo da área do cliente.

Valor de retorno

Se um aplicativo processar essa mensagem, ele deverá retornar zero.

Exemplo

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;
}

Para obter mais exemplos, consulte de Exemplos Clássicos do Windows no GitHub.

Comentários

Como observado acima, a coordenada x está na ordem baixa curto do valor de retorno; A coordenada y está na ordem alta curto (ambos representam valores assinados porque podem obter valores negativos em sistemas com vários monitores). Se o valor de retorno for atribuído a uma variável, você poderá usar o macro MAKEPOINTS para obter uma estrutura de POINTS do valor de retorno. Você também pode usar a macro GET_X_LPARAM ou GET_Y_LPARAM para extrair a coordenada x ou y.

Importante

Não use o LOWORD ou macros HIWORD para extrair as coordenadas x e y da posição do cursor porque essas macros retornam resultados incorretos em sistemas com vários monitores. Sistemas com vários monitores podem ter coordenadas x e y negativas, e LOWORD e HIWORD tratar as coordenadas como quantidades não assinadas.

Para detetar que a tecla ALT foi pressionada, verifique se GetKeyState com VK_MENU< 0. Observe que isso não deve ser GetAsyncKeyState.

Requerimentos

Exigência Valor
Cliente mínimo suportado
Windows 2000 Professional [apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado
Windows 2000 Server [apenas aplicações de ambiente de trabalho]
Cabeçalho
Winuser.h (inclui Windowsx.h)

Ver também

de referência

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

Conceptual

de entrada do mouse

Outros recursos

MAKEPOINTS

PONTOS