Estructura MOUSEINPUT (winuser.h)

Contiene información acerca de un evento de mouse simulado.

Sintaxis

typedef struct tagMOUSEINPUT {
  LONG      dx;
  LONG      dy;
  DWORD     mouseData;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;

Miembros

dx

Tipo: LONG

Posición absoluta del mouse o la cantidad de movimiento desde que se generó el último evento del mouse, dependiendo del valor del miembro dwFlags . Los datos absolutos se especifican como coordenada x del mouse; los datos relativos se especifican como el número de píxeles movidos.

dy

Tipo: LONG

Posición absoluta del mouse o la cantidad de movimiento desde que se generó el último evento del mouse, dependiendo del valor del miembro dwFlags . Los datos absolutos se especifican como la coordenada y del mouse; los datos relativos se especifican como el número de píxeles movidos.

mouseData

Tipo: DWORD

Si dwFlags contiene MOUSEEVENTF_WHEEL, mouseData 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.

Windows Vista: si dwFlags contiene MOUSEEVENTF_HWHEEL, dwData especifica la cantidad de movimiento de la rueda. Un valor positivo indica que la rueda se ha rotado hacia la derecha; un valor negativo indica que la rueda se ha rotado hacia la izquierda. Un clic de rueda se define como WHEEL_DELTA, que es 120.

Si dwFlags no contiene MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP, mouseData debe ser cero.

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

Value Significado
XBUTTON1
0x0001
Establezca si se presiona o suelta el primer botón X.
XBUTTON2
0x0002
Establezca si se presiona o suelta el segundo botón X.

dwFlags

Tipo: DWORD

Conjunto de marcas de bits que especifican varios aspectos del movimiento del mouse y clics de botón. Los bits de este miembro pueden ser cualquier combinación razonable de los valores siguientes.

Las marcas de bits 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 la marca MOUSEEVENTF_WHEEL y las marcas MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP simultáneamente en el parámetro dwFlags , ya que ambos requieren el uso del campo mouseData .

Value Significado
MOUSEEVENTF_MOVE
0x0001
Se produjo el movimiento.
MOUSEEVENTF_LEFTDOWN
0x0002
Se presionó el botón izquierdo.
MOUSEEVENTF_LEFTUP
0x0004
Se soltó el botón izquierdo.
MOUSEEVENTF_RIGHTDOWN
0x0008
Se presionó el botón derecho.
MOUSEEVENTF_RIGHTUP
0x0010
Se soltó el botón derecho.
MOUSEEVENTF_MIDDLEDOWN
0x0020
Se presionó el botón central.
MOUSEEVENTF_MIDDLEUP
0x0040
Se soltó el botón central.
MOUSEEVENTF_XDOWN
0x0080
Se presionó un botón X.
MOUSEEVENTF_XUP
0x0100
Se liberó un botón X.
MOUSEEVENTF_WHEEL
0x0800
La rueda se movió, si el mouse tiene una rueda. La cantidad de movimiento se especifica en mouseData.
MOUSEEVENTF_HWHEEL
0x1000
La rueda se movió horizontalmente, si el mouse tiene una rueda. La cantidad de movimiento se especifica en mouseData.
Windows XP/2000: este valor no es compatible.
MOUSEEVENTF_MOVE_NOCOALESCE
0x2000
Los mensajes de WM_MOUSEMOVE no se fusionarán. El comportamiento predeterminado es fusionar WM_MOUSEMOVE mensajes.
Windows XP/2000: este valor no es compatible.
MOUSEEVENTF_VIRTUALDESK
0x4000
Asigna coordenadas a todo el escritorio. Debe usarse con MOUSEEVENTF_ABSOLUTE.
MOUSEEVENTF_ABSOLUTE
0x8000
Los miembros dx y dy contienen coordenadas absolutas normalizadas. Si no se establece la marca, dxy dy 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 mouse u otro dispositivo que apunte, si existe, está conectado al sistema. Para obtener más información sobre el movimiento relativo del mouse, consulte la siguiente sección Comentarios.

time

Tipo: DWORD

Marca de tiempo del evento, en milisegundos. Si este parámetro es 0, el sistema proporcionará su propia marca de tiempo.

dwExtraInfo

Tipo: ULONG_PTR

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

Observaciones

Si el mouse se ha movido, indicado por MOUSEEVENTF_MOVE, dx y dy especifican 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. Coordenada (0,0) se asigna a la esquina superior izquierda de la superficie de visualización; coordenada (65535.65535) se asigna a la esquina inferior derecha. En un sistema multimonitor, las coordenadas se asignan al monitor principal.

Si se especifica MOUSEEVENTF_VIRTUALDESK , las coordenadas se asignan a todo el escritorio virtual.

Si no se especifica el valor de MOUSEEVENTF_ABSOLUTE , dxy dy especifican el movimiento con respecto al evento anterior 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 los efectos de la velocidad del mouse y los valores de umbral de dos mouses. Un usuario establece estos tres valores con el control deslizante Velocidad del puntero de la hoja Propiedades del mouse del Panel de control. Puede obtener y establecer estos valores mediante la función SystemParametersInfo .

El sistema aplica dos pruebas al movimiento relativo del mouse especificado. Si la distancia especificada a lo largo del eje x o y es mayor que el primer valor de umbral del mouse, y la velocidad del mouse no es cero, el sistema 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 la velocidad del mouse es igual a dos, el sistema duplica la distancia resultante de aplicar la primera prueba de umbral. Por lo tanto, es posible que el sistema multiplique el movimiento relativo del mouse especificado a lo largo del eje x o y hasta cuatro veces.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado winuser.h (incluya Windows.h)

Consulte también

Conceptual

GetMessageExtraInfo

INPUT

Entrada de teclado

Referencia

SendInput