Compartilhar via


Estrutura MOUSEINPUT (winuser.h)

Contém informações sobre um evento de mouse simulado.

Sintaxe

typedef struct tagMOUSEINPUT {
  LONG      dx;
  LONG      dy;
  DWORD     mouseData;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;

Membros

dx

Tipo: LONG

A posição absoluta do mouse ou a quantidade de movimento desde que o último evento do mouse foi gerado, dependendo do valor do membro dwFlags . Os dados absolutos são especificados como a coordenada x do mouse; os dados relativos são especificados conforme o número de pixels movidos.

dy

Tipo: LONG

A posição absoluta do mouse ou a quantidade de movimento desde que o último evento do mouse foi gerado, dependendo do valor do membro dwFlags . Os dados absolutos são especificados como a coordenada y do mouse; os dados relativos são especificados conforme o número de pixels movidos.

mouseData

Tipo: DWORD

Se dwFlags contiver MOUSEEVENTF_WHEEL, mouseData especificará a quantidade de movimento da roda. Um valor positivo indica que a roda foi girada para a frente; na direção oposta do usuário; um valor negativo indica que a roda foi girada para trás, na direção do usuário. Um clique de roda é definido como WHEEL_DELTA, que é 120.

Windows Vista: se dwFlagscontiver MOUSEEVENTF_HWHEEL, dwData especificará a quantidade de movimento da roda. Um valor positivo indica que a roda foi girada para a direita; um valor negativo indica que a roda foi girada para a esquerda. Um clique de roda é definido como WHEEL_DELTA, que é 120.

Se dwFlags não contiver MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP, mouseData deverá ser zero.

Se dwFlags contiver MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP, mouseData especificará quais botões X foram pressionados ou liberados. Esse valor pode ser qualquer combinação dos sinalizadores a seguir.

Valor Significado
XBUTTON1
0x0001
Defina se o primeiro botão X for pressionado ou liberado.
XBUTTON2
0x0002
Defina se o segundo botão X for pressionado ou liberado.

dwFlags

Tipo: DWORD

Um conjunto de sinalizadores de bits que especificam vários aspectos do movimento do mouse e cliques de botão. Os bits neste membro podem ser qualquer combinação razoável dos valores a seguir.

Os sinalizadores de bits que especificam o botão do mouse status são definidos para indicar alterações em status, não em condições contínuas. Por exemplo, se o botão esquerdo do mouse for pressionado e pressionado, MOUSEEVENTF_LEFTDOWN será definido quando o botão esquerdo for pressionado pela primeira vez, mas não para movimentos subsequentes. Da mesma forma , MOUSEEVENTF_LEFTUP é definido somente quando o botão é liberado pela primeira vez.

Não é possível especificar o sinalizador MOUSEEVENTF_WHEEL e os sinalizadores MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP simultaneamente no parâmetro dwFlags , pois ambos exigem o uso do campo mouseData .

Valor Significado
MOUSEEVENTF_MOVE
0x0001
O movimento ocorreu.
MOUSEEVENTF_LEFTDOWN
0x0002
O botão esquerdo foi pressionado.
MOUSEEVENTF_LEFTUP
0x0004
O botão esquerdo foi liberado.
MOUSEEVENTF_RIGHTDOWN
0x0008
O botão direito foi pressionado.
MOUSEEVENTF_RIGHTUP
0x0010
O botão direito foi liberado.
MOUSEEVENTF_MIDDLEDOWN
0x0020
O botão do meio foi pressionado.
MOUSEEVENTF_MIDDLEUP
0x0040
O botão do meio foi liberado.
MOUSEEVENTF_XDOWN
0x0080
Um botão X foi pressionado.
MOUSEEVENTF_XUP
0x0100
Um botão X foi liberado.
MOUSEEVENTF_WHEEL
0x0800
A roda foi movida, se o mouse tiver uma roda. A quantidade de movimento é especificada em mouseData.
MOUSEEVENTF_HWHEEL
0x1000
A roda foi movida horizontalmente, se o mouse tiver uma roda. A quantidade de movimento é especificada em mouseData.
Windows XP/2000: não há suporte para esse valor.
MOUSEEVENTF_MOVE_NOCOALESCE
0x2000
As mensagens WM_MOUSEMOVE não serão agrupadas. O comportamento padrão é unir mensagens WM_MOUSEMOVE .
Windows XP/2000: não há suporte para esse valor.
MOUSEEVENTF_VIRTUALDESK
0x4000
Mapeia coordenadas para toda a área de trabalho. Deve ser usado com MOUSEEVENTF_ABSOLUTE.
MOUSEEVENTF_ABSOLUTE
0x8000
Os membros dx e dy contêm coordenadas absolutas normalizadas. Se o sinalizador não estiver definido, dxe dy conterão dados relativos (a alteração na posição desde a última posição relatada). Esse sinalizador pode ser definido ou não definido, independentemente de que tipo de mouse ou outro dispositivo apontador, se houver, esteja conectado ao sistema. Para obter mais informações sobre o movimento relativo do mouse, consulte a seção Comentários a seguir.

time

Tipo: DWORD

O carimbo de data/hora do evento, em milissegundos. Se esse parâmetro for 0, o sistema fornecerá seu próprio carimbo de data/hora.

dwExtraInfo

Tipo: ULONG_PTR

Um valor adicional associado ao evento do mouse. Um aplicativo chama GetMessageExtraInfo para obter essas informações extras.

Comentários

Se o mouse tiver sido movido, indicado por MOUSEEVENTF_MOVE, dx e dy especificarão informações sobre esse movimento. As informações são especificadas como valores inteiros absolutos ou relativos.

Se MOUSEEVENTF_ABSOLUTE valor for especificado, dx e dy conterão coordenadas absolutas normalizadas entre 0 e 65.535. O procedimento de evento mapeia essas coordenadas para a superfície de exibição. A coordenada (0,0) é mapeada para o canto superior esquerdo da superfície de exibição; A coordenada (65535.65535) é mapeada para o canto inferior direito. Em um sistema multimonitoramento, as coordenadas são mapeadas para o monitor primário.

Se MOUSEEVENTF_VIRTUALDESK for especificado, as coordenadas serão mapeadas para toda a área de trabalho virtual.

Se o valor MOUSEEVENTF_ABSOLUTE não for especificado, dxe dy especificarão o movimento em relação ao evento anterior do mouse (a última posição relatada). Valores positivos significam que o mouse foi movido para a direita (ou para baixo); valores negativos significam que o mouse foi movido para a esquerda (ou para cima).

O movimento relativo do mouse está sujeito aos efeitos da velocidade do mouse e dos valores de limite de dois mouses. Um usuário define esses três valores com o controle deslizante Velocidade do Ponteiro da folha Propriedades do Mouse do Painel de Controle. Você pode obter e definir esses valores usando a função SystemParametersInfo .

O sistema aplica dois testes ao movimento relativo do mouse especificado. Se a distância especificada ao longo do eixo x ou y for maior que o primeiro valor de limite do mouse e a velocidade do mouse não for zero, o sistema dobrará a distância. Se a distância especificada ao longo do eixo x ou y for maior que o segundo valor de limite do mouse e a velocidade do mouse for igual a duas, o sistema dobrará a distância resultante da aplicação do primeiro teste de limite. Portanto, é possível que o sistema multiplique o movimento relativo do mouse especificado ao longo do eixo x ou y em até quatro vezes.

Requisitos

   
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 winuser.h (inclua Windows.h)

Confira também

Conceitual

GetMessageExtraInfo

INPUT

Entrada por teclado

Referência

SendInput