Compartir a través de


mouse_event función (winuser.h)

La función mouse_event sintetiza el movimiento del mouse y los clics de los botones.

Nota Esta función se ha reemplazado. Use SendInput en su lugar.
 

Sintaxis

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 varios aspectos del movimiento del mouse y el clic en el botón. Este parámetro puede ser ciertas combinaciones de los valores siguientes.

Valor Significado
MOUSEEVENTF_ABSOLUTE
0x8000
Los parámetros dx y dy contienen coordenadas absolutas normalizadas. Si no se establece, esos parámetros contienen datos relativos: el cambio de posición desde la última posición notificada. Esta marca se puede establecer o no, independientemente del tipo de dispositivo de mouse o mouse, si existe, está conectado al sistema. Para obtener más información sobre el movimiento relativo del mouse, consulte la siguiente sección Comentarios.
MOUSEEVENTF_LEFTDOWN
0x0002
El botón izquierdo está abajo.
MOUSEEVENTF_LEFTUP
0x0004
El botón izquierdo está arriba.
MOUSEEVENTF_MIDDLEDOWN
0x0020
El botón central está abajo.
MOUSEEVENTF_MIDDLEUP
0x0040
El botón central está arriba.
MOUSEEVENTF_MOVE
0x0001
Se produjo el movimiento.
MOUSEEVENTF_RIGHTDOWN
0x0008
El botón derecho está abajo.
MOUSEEVENTF_RIGHTUP
0x0010
El botón derecho está arriba.
MOUSEEVENTF_WHEEL
0x0800
La rueda se ha movido, si el mouse tiene una rueda. La cantidad de movimiento se especifica en dwData.
MOUSEEVENTF_XDOWN
0x0080
Se presionó un botón X.
MOUSEEVENTF_XUP
0x0100
Se liberó un botón X.
MOUSEEVENTF_WHEEL
0x0800
El botón de rueda se gira.
MOUSEEVENTF_HWHEEL
0x01000
El botón de rueda está inclinado.
 

Los valores que especifican el estado del botón del mouse se establecen para indicar los cambios en el estado, no las condiciones en curso. Por ejemplo, si se presiona y mantiene presionado el botón izquierdo del mouse, MOUSEEVENTF_LEFTDOWN se establece cuando se presiona por primera vez el botón izquierdo, pero no para los movimientos posteriores. Del mismo modo, MOUSEEVENTF_LEFTUP solo se establece cuando se suelta el botón por primera vez.

No se pueden especificar tanto MOUSEEVENTF_WHEEL comoMOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP simultáneamente en el parámetro dwFlags , ya que ambos requieren el uso del campo dwData .

[in] dx

Tipo: DWORD

Posición absoluta del mouse a lo largo del eje X o su cantidad de movimiento desde que se generó el último evento del mouse, dependiendo de la configuración de MOUSEEVENTF_ABSOLUTE. Los datos absolutos se especifican como coordenada x real del mouse; los datos relativos se especifican como el número de mickeys movidos. Un mickey es la cantidad que un mouse tiene que mover para que informe de que se ha movido.

[in] dy

Tipo: DWORD

Posición absoluta del mouse a lo largo del eje Y o su cantidad de movimiento desde que se generó el último evento del mouse, dependiendo de la configuración de MOUSEEVENTF_ABSOLUTE. Los datos absolutos se especifican como coordenada y real del mouse; los datos relativos se especifican como el número de mickeys movidos.

[in] dwData

Tipo: DWORD

Si dwFlags contiene MOUSEEVENTF_WHEEL, dwData especifica la cantidad de movimiento de la rueda. Un valor positivo indica que la rueda se ha girado hacia delante, hacia el lado contrario al usuario. Un valor negativo indica que la rueda se ha girado hacia atrás, hacia el usuario. Un clic de rueda se define como WHEEL_DELTA, que es 120.

Si dwFlags contiene MOUSEEVENTF_HWHEEL, dwData especifica la cantidad de movimiento de rueda. Un valor positivo indica que la rueda estaba inclinada hacia la derecha; un valor negativo indica que la rueda estaba inclinada a la izquierda.

Si dwFlags contiene MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP, dwData especifica qué botones X se presionaron o liberaron. Este valor puede ser cualquier combinación de las marcas siguientes.

Si dwFlags no es MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP, dwData debe ser cero.

Valor Significado
XBUTTON1
0x0001
Establezca si se ha presionado o liberado el primer botón X.
XBUTTON2
0x0002
Establezca si se ha presionado o liberado el segundo botón X.

[in] dwExtraInfo

Tipo: ULONG_PTR

Valor adicional asociado al evento del mouse. Una aplicación llama a GetMessageExtraInfo para obtener esta información adicional.

Valor devuelto

None

Observaciones

Si el mouse se ha movido, indicado por MOUSEEVENTF_MOVE establecer, dx y dy mantener información sobre ese movimiento. La información se especifica como valores enteros absolutos o relativos.

Si se especifica MOUSEEVENTF_ABSOLUTE valor, dx y dy contienen coordenadas absolutas normalizadas entre 0 y 65.535. El procedimiento de evento asigna estas coordenadas a la superficie de visualización. Coordenadas (0,0) se asigna a la esquina superior izquierda de la superficie de visualización, (65535,65535) se asigna a la esquina inferior derecha.

Si no se especifica el valor de MOUSEEVENTF_ABSOLUTE , dx y dy especifican movimientos relativos desde el momento en que se generó el último evento del mouse (la última posición notificada). Los valores positivos significan que el mouse se movió a la derecha (o hacia abajo); los valores negativos significan que el mouse se ha movido a la izquierda (o hacia arriba).

El movimiento relativo del mouse está sujeto a la configuración del nivel de aceleración y velocidad del mouse. Un usuario final establece estos valores mediante la aplicación Mouse en Panel de control. Una aplicación obtiene y establece estos valores con la función SystemParametersInfo .

El sistema aplica dos pruebas al movimiento relativo del mouse especificado al aplicar la aceleración. Si la distancia especificada a lo largo del eje x o y es mayor que el primer valor de umbral del mouse, y el nivel de aceleración del mouse no es cero, el sistema operativo duplica la distancia. Si la distancia especificada a lo largo del eje x o y es mayor que el segundo valor de umbral del mouse, y el nivel de aceleración del mouse es igual a dos, el sistema operativo duplica la distancia resultante de aplicar la primera prueba de umbral. Por lo tanto, es posible que el sistema operativo multiplique el movimiento del mouse relativamente especificado a lo largo del eje X o Y hasta cuatro veces.

Una vez aplicada la aceleración, el sistema escala el valor resultante por la velocidad del mouse deseada. La velocidad del mouse puede oscilar entre 1 (más lento) y 20 (más rápido) y representa cuánto se mueve el puntero en función de la distancia a la que se mueve el mouse. El valor predeterminado es 10, lo que no produce ninguna modificación adicional en el movimiento del mouse.

La función mouse_event se usa para sintetizar eventos del mouse por parte de las aplicaciones que necesitan hacerlo. También lo usan las aplicaciones que necesitan obtener más información del mouse que su posición y estado del botón. Por ejemplo, si un fabricante de tabletas quiere pasar información basada en lápiz a sus propias aplicaciones, puede escribir un archivo DLL que se comunique directamente con el hardware de la tableta, obtenga la información adicional y lo guarde en una cola. A continuación, el archivo DLL llama a mouse_event con los datos de posición estándar y x/y, junto con, en el parámetro dwExtraInfo , algún puntero o índice a la información adicional en cola. Cuando la aplicación necesita la información adicional, llama al archivo DLL con el puntero o índice almacenado en dwExtraInfo y el archivo DLL devuelve la información adicional.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

Conceptual

GetMessageExtraInfo

Entrada de mouse

Otros recursos

Referencia

SystemParametersInfo