Compartilhar via


WM_MOUSEHWHEEL mensagem

Enviado para a janela ativa quando a roda de rolagem horizontal do mouse é inclinada ou girada. A função DefWindowProc propaga a mensagem para o pai da janela. Não deve haver encaminhamento interno da mensagem, já que DefWindowProc propaga a cadeia pai até encontrar uma janela que a processe.

Uma janela recebe essa mensagem por meio de sua função WindowProc.

#define WM_MOUSEHWHEEL                  0x020E

Parâmetros

wParam

A palavra de alta ordem indica a distância em que a roda é girada, expressa em múltiplos ou fatores de WHEEL_DELTA, que é definida como 120. Um valor positivo indica que a roda foi girada para a direita; um valor negativo indica que a roda foi girada para a esquerda.

A palavra de ordem baixa indica se várias chaves virtuais estão inoperantes. Esse parâmetro pode ser um ou mais dos valores a seguir.

Valor Significado
MK_CONTROL
0x0008
A tecla CTRL está inoperante.
MK_LBUTTON
0x0001
O botão esquerdo do mouse está inoperante.
MK_MBUTTON
0x0010
O botão do mouse do meio está inoperante.
MK_RBUTTON
0x0002
O botão direito do mouse está desligado.
MK_SHIFT
0x0004
A tecla SHIFT está inoperante.
MK_XBUTTON1
0x0020
O XBUTTON1 está inoperante.
MK_XBUTTON2
0x0040
O XBUTTON2 está inoperante.

lParam

A palavra de ordem baixa especifica a coordenada x do ponteiro, em relação ao canto superior esquerdo da tela.

A palavra de alta ordem especifica a coordenada y do ponteiro em relação ao canto superior esquerdo da tela.

Valor de retorno

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

Observações

Use o código a seguir para obter as informações no parâmetro wParam.

fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);

Use o código a seguir 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 inferior curto do valor retornado; a coordenada y está na curta (ambas 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 tratar as coordenadas como quantidades não assinadas.

A rotação da roda é um múltiplo de WHEEL_DELTA, que é definido como 120. Esse é o limite para a ação a ser tomada e uma dessas ações (por exemplo, rolagem de um incremento) deve ocorrer para cada delta.

O delta foi definido como 120 para permitir que a Microsoft ou outros fornecedores criem rodas de resolução mais fina (por exemplo, uma roda de rotação livre sem entalhes) para enviar mais mensagens por rotação, mas com um valor menor em cada mensagem. Para usar esse recurso, você pode adicionar os valores delta de entrada até que WHEEL_DELTA seja atingido (portanto, para uma rotação delta, você obtém a mesma resposta) ou rolar linhas parciais em resposta a mensagens mais frequentes. Você também pode escolher sua granularidade de rolagem e acumular deltas até que ela seja atingida.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclua Windowsx.h)

Consulte também

de referência de

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_Y_LPARAM

GET_WHEEL_DELTA_WPARAM

HIWORD

LOWORD

mouse_event

Conceitual

de entrada do mouse

outros recursos

GetSystemMetrics

MAKEPOINTS

POINTS

SystemParametersInfo