função mouse_event (winuser.h)
A função mouse_event sintetiza os cliques de botão e movimento do mouse.
Sintaxe
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
Parâmetros
[in] dwFlags
Tipo: DWORD
Controla vários aspectos do movimento do mouse e do clique no botão. Esse parâmetro pode ser determinadas combinações dos valores a seguir.
Os valores 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.
Você não pode especificar MOUSEEVENTF_WHEEL e MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP simultaneamente no parâmetro dwFlags , pois ambos exigem o uso do campo dwData .
[in] dx
Tipo: DWORD
A posição absoluta do mouse ao longo do eixo x ou sua quantidade de movimento desde que o último evento do mouse foi gerado, dependendo da configuração de MOUSEEVENTF_ABSOLUTE. Os dados absolutos são especificados como a coordenada x real do mouse; os dados relativos são especificados conforme o número de mickeys movidos. Um mickey é a quantidade que um mouse tem que mover para ele para relatar que ele se moveu.
[in] dy
Tipo: DWORD
A posição absoluta do mouse ao longo do eixo y ou sua quantidade de movimento desde que o último evento do mouse foi gerado, dependendo da configuração de MOUSEEVENTF_ABSOLUTE. Os dados absolutos são especificados como a coordenada y real do mouse; os dados relativos são especificados conforme o número de mickeys movidos.
[in] dwData
Tipo: DWORD
Se dwFlags contiver MOUSEEVENTF_WHEEL, dwData 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.
Se dwFlags contiver MOUSEEVENTF_HWHEEL, dwData especificará a quantidade de movimento da roda. Um valor positivo indica que a roda foi inclinada para a direita; um valor negativo indica que a roda foi inclinada para a esquerda.
Se dwFlags contiver MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP, dwData especifica quais botões X foram pressionados ou liberados. Esse valor pode ser qualquer combinação dos sinalizadores a seguir.
Se dwFlags não for MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN ou MOUSEEVENTF_XUP, dwData deverá ser zero.
Valor | Significado |
---|---|
|
Defina se o primeiro botão X foi pressionado ou liberado. |
|
Defina se o segundo botão X foi pressionado ou liberado. |
[in] dwExtraInfo
Tipo: ULONG_PTR
Um valor adicional associado ao evento do mouse. Um aplicativo chama GetMessageExtraInfo para obter essas informações extras.
Retornar valor
Nenhum
Comentários
Se o mouse tiver sido movido, indicado por MOUSEEVENTF_MOVE que está sendo definido, dx e dy mantêm 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, (65535.65535) mapeia para o canto inferior direito.
Se o valor MOUSEEVENTF_ABSOLUTE não for especificado, dx e dy especificarão movimentos relativos de quando o último evento do mouse foi gerado (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 às configurações para o nível de aceleração e velocidade do mouse. Um usuário final define esses valores usando o aplicativo Mouse em Painel de Controle. Um aplicativo obtém e define esses valores com a função SystemParametersInfo .
O sistema aplica dois testes ao movimento relativo do mouse especificado ao aplicar a aceleração. Se a distância especificada ao longo do eixo x ou y for maior que o primeiro valor de limite do mouse e o nível de aceleração do mouse não for zero, o sistema operacional 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 o nível de aceleração do mouse for igual a dois, o sistema operacional dobrará a distância resultante da aplicação do primeiro teste de limite. Portanto, é possível que o sistema operacional multiplique o movimento do mouse relativamente especificado ao longo do eixo x ou y em até quatro vezes.
Depois que a aceleração for aplicada, o sistema dimensiona o valor resultante pela velocidade desejada do mouse. A velocidade do mouse pode variar de 1 (mais lento) a 20 (mais rápido) e representa o quanto o ponteiro se move com base na distância que o mouse move. O valor padrão é 10, o que não resulta em nenhuma modificação adicional no movimento do mouse.
A função mouse_event é usada para sintetizar eventos do mouse por aplicativos que precisam fazer isso. Ele também é usado por aplicativos que precisam obter mais informações do mouse do que sua posição e estado do botão. Por exemplo, se um fabricante de tablet quiser passar informações baseadas em caneta para seus próprios aplicativos, ele poderá escrever uma DLL que se comunica diretamente com o hardware do tablet, obter as informações extras e salvá-la em uma fila. Em seguida, a DLL chama mouse_event com o botão padrão e os dados de posição x/y, juntamente com, no parâmetro dwExtraInfo , algum ponteiro ou índice para as informações extras enfileiradas. Quando o aplicativo precisa das informações extras, ele chama a DLL com o ponteiro ou índice armazenado em dwExtraInfo e a DLL retorna as informações extras.
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] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Confira também
Conceitual
Outros recursos
Referência