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
Referência