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
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 |
|
Ver também
-
de referência
-
Conceptual
-
Outros recursos