winuser.h


mouse_event

La función mouse_event sintetiza movimientos y clics de botones del ratón.

Sintaxis

VOID mouse_event(
    DWORD dwFlags,     // banderas que especifican variantes de movimiento y clics
    DWORD dx,          // posición horizontal del ratón o cambio de posición
    DWORD dy,          // posición vertical del ratón o cambio de posición
    DWORD dwData,      // cantidad de movimiento de rueda
    DWORD dwExtraInfo  // información de 32 bits definida por aplicación
   );

Parámetros

dwFlags: un conjunto de bits de bandera que especifica varios aspectos del movimiento o clic de botones del ratón. Los bits en este parámetro pueden ser combinaciones razonables de los siguientes valores:

Valor Significado
MOUSEEVENTF_ABSOLUTE Especifica que los parámetors dx y dy contienen coordenadas absolutas normalizadas. Si no está activa, los parámetros contienen datos relativos: el cambio de posición desde la última informada. Esta bandera puede activarse o no, independientemente del tipo de dispositivo de ratón o similar, si existe, que esté conectado al sistema. Para mayor información sobre movimiento relativo del ratón, ver la sección de observaciones.
MOUSEEVENTF_MOVE Especifica qué ha ocurrido un movimiento.
MOUSEEVENTF_LEFTDOWN Especifica que el botón izquierdo ha cambiado a pulsado.
MOUSEEVENTF_LEFTUP Especifica que el botón izquierdo ha cambiado a no pulsado.
MOUSEEVENTF_RIGHTDOWN Especifica que el botón derecho ha cambiado a pulsado.
MOUSEEVENTF_RIGHTUP Especifica que el botón derecho ha cambiado a no pulsado.
MOUSEEVENTF_MIDDLEDOWN Especifica que el botón central ha cambiado a pulsado.
MOUSEEVENTF_MIDDLEUP Especifica que el botón central ha cambiado a no pulsado.
MOUSEEVENTF_WHEEL Sólo en Windows NT: especifica que la rueda se ha movido, si el ratón tiene una rueda. La cantidad de movimiento se proporciona en dwData.

Los bits de bandera que especifican estados de los botones del ratón se activan para indicar cambios en el estado, no condiciones en curso. Por ejemplo, si el botón izquierdo del ratón está pulsado y permanece pulsado, MOUSEEVENTF_LEFTDOWN es activado cuando el botón izquierdo se pulso por primera vez, pero no para movimientos posteriores. De modo similar, MOUSEEVENTF_LEFTUP se activa sólo la primera vez que se suelta el botón.

dx: especifica la posición absoluta del ratón a lo largo del eje x, o la cantidad de movimiento desde el último evento de ratón generado, dependiendo del valor de MOUSEEVENTF_ABSOLUTE. Los datos absolutos se da como la coordenada x actual; los relativos como el número de unidades movidas.

dy: especifica la posición absoluta del ratón a lo largo del eje y, o la cantidad de movimiento desde el último evento de ratón generado, dependiendo del valor de MOUSEEVENTF_ABSOLUTE. Los datos absolutos se da como la coordenada y actual; los relativos como el número de unidades movidas.

dwData: si dwFlags es MOUSEEVENTF_WHEEL, entonces dwData especifica la cantidad de movimiento de la rueda. Un valor positivo indica que la rueda fiue rotada hacia adelante; un valor negativo indica que la rueda fue rotada hacia atrás, hacia el usuario. Un clic de rueda se define como WHEEL_DELTA, que vale 120.

Si dwFlags no es MOUSEEVENTF_WHEEL, entonces dwData debe ser cero.

dwExtraInfo: especifica un valor adicional de 32 bits asociado con el evento del ratón. Una aplicación puede llamar a GetMessageExtraInfo para obteber esta información extra.

Valor de retorno

Esta función no devuelve ningún valor.

Observaciones

Si el ratón se ha movido, indicado por MOUSEEVENTF_MOVE activo, dx y dy contienen información sobre ese movimiento. La información viene dada por valores enteros absolutos o relativos.

Si se especifica el valor MOUSEEVENTF_ABSOLUTE, dx y dy contienen coordenadas normalizadas absolutas entre 0 y 65,535. El procedimiento de evento mapea estas coordenadas en la superficie del display. La coordenada (0,0) se mapea a la esquina superior izquierda de la superficie del display, (65535,65535) se mapea en la esquina inferior derecha.

Si no se especifica el valor MOUSEEVENTF_ABSOLUTE, dx y dy especifican movimientos relativos a partir del último evento de ratón generado (la última posición informada). Los valores positivos significan que el ratón se ha movido a la derecha (o abajo); los negativos significan que se ha movido a la izquierda (o arriba).

Los movimientos relativos del ratón están sometidos a los efectos de la velocidad del ratón y de los dos valores de umbrales del ratón. En Windows NT, un usuario final asigna estros tres valores con la velocidad de seguimiento del ratón de la opción del ratón del Panel de Control; en Windows 95, con la velocidad del puntero del panel de propiedades del ratón del Panel de Control. La aplicación puede obtener estos valores con la función SystemParametersInfo.

El sistema operativo aplica dospruebas al movimiento relativo del ratón especificado. Si la distancia especificada a lo largo del eje x o y es mayor que el valor del primer umbral, y la velocidad del ratón no es cero, el sistema operativo dobla la distancia. Si la distancia especificada a lo largo del eje x o y es mayor que el valor del segundo umbral y la velocidad es igual a dos, el sistema operativo dobla la distancia que resulta de aplicar la primera prueba de umbral. De este modo es posible para el sistema operativo multiplicar el movimiento de ratón relativo especificado a lo largo de los ejes x o y hasta cuatro veces.

La función mouse_event se usa para sintetizar eventos de ratón por aplicaciones que necesitan hacerlo. También puede ser usado por aplicacipones que necesitan obtener más información del ratón que su posición y estado de botones. Por ejemplo, si un fabricante de tabletas quere pasar información pasada en pluma a su propia aplicación, puede escribir una DDL que se comunique directamente con el hardware de la tableta, obtenga la información extra, y la almance en una cola. La DLL entonces llama a mouse_event con los botones estándar y los datos de posición x e y, y a añadiendo, en el parámetro dwExtraInfo, algún puntero o índice a la información extra en la cola. Cuando la aplicación necesite la información extra, llamará a la DLL con el puntero o el índice almacenado en dwExtraInfo, y la DLL devuelve la información extra.