WM_MOUSEWHEEL mensagem
Enviado para a janela de foco quando a roda do mouse é girada. A função DefWindowProc propaga a mensagem para o pai da janela. Não deve haver encaminhamento interno da mensagem, uma vez que DefWindowProc a propaga pela cadeia pai até encontrar uma janela que a processe.
Uma janela recebe esta mensagem através da sua função WindowProc.
#define WM_MOUSEWHEEL 0x020A
Parâmetros
-
wParam
-
A palavra de ordem alta indica a distância que a roda é girada, expressa em múltiplos ou divisões de WHEEL_DELTA, que é 120. Um valor positivo indica que a roda foi girada para a frente, longe do utilizador; Um valor negativo indica que a roda foi girada para trás, em direção ao usuário.
A palavra de ordem baixa 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 ponteiro, em relação ao canto superior esquerdo da tela.
A palavra de ordem alta especifica a coordenada y do ponteiro, em relação ao canto superior esquerdo da tela.
Valor de retorno
Se um aplicativo processar essa mensagem, ele deverá retornar zero.
Comentários
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 seguinte código para obter a posição horizontal e vertical:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
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.
A rotação da roda será um múltiplo de WHEEL_DELTA, que é definido em 120. Este é o limite para a ação a ser tomada, e uma dessas ações (por exemplo, rolar um incremento) deve ocorrer para cada delta.
O delta foi definido como 120 para permitir que a Microsoft ou outros fornecedores construíssem rodas de resolução mais fina (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 (para uma rotação delta você obtenha a mesma resposta) ou rolar linhas parciais em resposta às mensagens mais frequentes. Você também pode escolher sua granularidade de rolagem e acumular deltas até que ela seja atingida.
Observe que não há fwKeys para MSH_MOUSEWHEEL. Caso contrário, os parâmetros são exatamente os mesmos que para WM_MOUSEWHEEL.
Cabe ao aplicativo encaminhar MSH_MOUSEWHEEL para quaisquer objetos ou controles incorporados. O aplicativo é necessário para enviar a mensagem para um aplicativo OLE incorporado ativo. É opcional que o aplicativo o envie para um controle habilitado para roda com foco. Se o aplicativo enviar a mensagem para um controle, ele pode verificar o valor de retorno para ver se a mensagem foi processada. Os controles são necessários para retornar um valor de TRUE se processarem a mensagem.
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