Compartilhar via


função mouse_event (winuser.h)

A função mouse_event sintetiza os cliques de botão e movimento do mouse.

Nota Essa função foi substituída. Em vez disso, use SendInput.
 

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.

Valor Significado
MOUSEEVENTF_ABSOLUTE
0x8000
Os parâmetros dx e dy contêm coordenadas absolutas normalizadas. Se não for definido, esses parâmetros 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 do tipo de dispositivo semelhante ao mouse ou mouse, se houver, está conectado ao sistema. Para obter mais informações sobre o movimento relativo do mouse, consulte a seção Comentários a seguir.
MOUSEEVENTF_LEFTDOWN
0x0002
O botão esquerdo está inativo.
MOUSEEVENTF_LEFTUP
0x0004
O botão esquerdo está ativado.
MOUSEEVENTF_MIDDLEDOWN
0x0020
O botão do meio está inativo.
MOUSEEVENTF_MIDDLEUP
0x0040
O botão do meio está ativado.
MOUSEEVENTF_MOVE
0x0001
O movimento ocorreu.
MOUSEEVENTF_RIGHTDOWN
0x0008
O botão direito está inativo.
MOUSEEVENTF_RIGHTUP
0x0010
O botão direito está ativado.
MOUSEEVENTF_WHEEL
0x0800
A roda foi movida, se o mouse tiver uma roda. A quantidade de movimentação é especificada em dwData
MOUSEEVENTF_XDOWN
0x0080
Um botão X foi pressionado.
MOUSEEVENTF_XUP
0x0100
Um botão X foi liberado.
MOUSEEVENTF_WHEEL
0x0800
O botão de roda é girado.
MOUSEEVENTF_HWHEEL
0x01000
O botão de roda está inclinado.
 

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
XBUTTON1
0x0001
Defina se o primeiro botão X foi pressionado ou liberado.
XBUTTON2
0x0002
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

GetMessageExtraInfo

Entrada por mouse

Outros recursos

Referência

SystemParametersInfo