mouse_event función (winuser.h)
La función mouse_event sintetiza el movimiento del mouse y los clics de los botones.
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.
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 |
---|---|
|
Establezca si se ha presionado o liberado el primer botón X. |
|
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
Otros recursos
Referencia