WM_XBUTTONDBLCLK mensagem
Postado quando o usuário clica duas vezes no primeiro ou segundo botão X 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 essa mensagem por meio de sua função WindowProc .
#define WM_XBUTTONDBLCLK 0x020D
Parâmetros
-
wParam
-
A palavra de baixa ordem indica se várias chaves virtuais estão inativas. Pode ser um ou mais dos seguintes valores.
Valor Significado - MK_CONTROL
- 0x0008
A chave CTRL está inoperante. - MK_LBUTTON
- 0x0001
O botão esquerdo do mouse está inativo. - MK_MBUTTON
- 0x0010
O botão do mouse do meio está inativo. - MK_RBUTTON
- 0x0002
O botão direito do mouse está inativo. - MK_SHIFT
- 0x0004
A chave SHIFT está inoperante. - MK_XBUTTON1
- 0x0020
O primeiro botão X está inativo. - MK_XBUTTON2
- 0x0040
O segundo botão X está inativo. A palavra de alta ordem indica qual botão foi clicado duas vezes. Pode ser um dos seguintes valores.
Valor Significado - XBUTTON1
- 0x0001
O primeiro botão X foi clicado duas vezes. - XBUTTON2
- 0x0002
O segundo botão X foi clicado duas vezes. -
lParam
-
A palavra de baixa ordem especifica a coordenada x do cursor. A coordenada é relativa ao canto superior esquerdo da área do cliente.
A palavra de alta ordem especifica a coordenada y do cursor. A coordenada é relativa ao canto superior esquerdo da área do cliente.
Valor retornado
Se um aplicativo processar essa mensagem, ela deverá retornar TRUE. Para obter mais informações sobre como processar o valor retornado, consulte a seção Comentários.
Comentários
Use o seguinte código para obter as informações no parâmetro wParam :
fwKeys = GET_KEYSTATE_WPARAM (wParam);
fwButton = GET_XBUTTON_WPARAM (wParam);
Use o seguinte código para obter a posição horizontal e vertical:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Conforme observado acima, a coordenada x está na ordem baixa aquém do valor retornado; a coordenada y está no curto de alta ordem (ambos representam valores assinados porque podem levar valores negativos em sistemas com vários monitores). Se o valor retornado for atribuído a uma variável, você poderá usar a macro MAKEPOINTS para obter uma estrutura POINTS do valor retornado. 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 as macros LOWORD ou 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 tratam as coordenadas como quantidades não assinadas.
Somente janelas que têm o estilo CS_DBLCLKS podem receber mensagens WM_XBUTTONDBLCLK , que o sistema gera sempre que o usuário pressiona, libera e pressiona novamente um botão X dentro do limite de tempo de clique duplo do sistema. Clicar duas vezes em um desses botões gera quatro mensagens: WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK e WM_XBUTTONUP novamente.
Ao contrário das mensagens WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLK e WM_RBUTTONDBLCLK , um aplicativo deverá retornar TRUE dessa mensagem se ele o processar. Isso permitirá que o software que simula essa mensagem em sistemas Windows anteriores a Windows 2000 determine se o procedimento de janela processou a mensagem ou chamou DefWindowProc para processá-la.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
Confira também
-
Referência
-
Conceitual
-
Outros recursos