Clase wxMouseEvent
Esta clase de eventos contiene información sobre los eventos generados por el ratón: incluyen eventos de pulsación y liberación de botones del ratón y eventos de movimiento del ratón.
Jerarquía:

Todos los eventos de ratón relacionados con los botones utilizan wxMOUSE_BTN_LEFT para el botón izquierdo del ratón, wxMOUSE_BTN_MIDDLE para el del medio y wxMOUSE_BTN_RIGHT para el derecho. Y si el sistema soporta más botones, también se pueden generar los eventos wxMOUSE_BTN_AUX1 y wxMOUSE_BTN_AUX2. Hay que tener en cuenta que no todos los ratones tienen siquiera un botón central, por lo que una aplicación portable debería evitar depender de los eventos de éste (pero el click del botón derecho puede emularse utilizando el botón izquierdo del ratón con la tecla control en plataformas Mac con un ratón de un solo botón).
A efectos de los eventos wxEVT_ENTER_WINDOW y wxEVT_LEAVE_WINDOW, se considera que el ratón está dentro de la ventana si se encuentra en el área cliente de la ventana y no dentro de uno de sus hijos. En otras palabras, la ventana padre recibe el evento wxEVT_LEAVE_WINDOW no sólo cuando el ratón abandona la ventana por completo, sino también cuando entra en uno de sus hijos.
La posición asociada a un evento de ratón se expresa en las coordenadas de la ventana que generó el evento, se puede utilizar wxWindow::ClientToScreen() para convertirla a coordenadas de pantalla y posiblemente llamar a continuación a wxWindow::ScreenToClient() para convertirla a coordenadas de ventana de otra ventana.
Nota: Obsérvese la diferencia entre métodos como wxMouseEvent::LeftDown y el heredado wxMouseState::LeftIsDown: el primero devuelve true cuando el evento corresponde al click del botón izquierdo del ratón mientras que el segundo devuelve true si el botón izquierdo del ratón está siendo pulsado en ese momento. Por ejemplo, cuando el usuario está arrastrando el ratón se puede utilizar wxMouseState::LeftIsDown para comprobar si el botón izquierdo del ratón está (todavía) pulsado. Además, por convención, si wxMouseEvent::LeftDown devuelve true, wxMouseState::LeftIsDown también devolverá true en wxWidgets sea cual sea el comportamiento GUI subyacente (que depende de la plataforma). Lo mismo se aplica, por supuesto, a otros botones del ratón.
Eventos que usan esta clase
Las siguientes macros de manejadores de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:
void handlerFuncName(wxMouseEvent& event)
Macros de evento:
- EVT_LEFT_DOWN(func):
Procesa un evento wxEVT_LEFT_DOWN. El manejador de este evento debería normalmente llamar a event.Skip() para permitir que el procesamiento por defecto tenga lugar ya que de otra forma la ventana bajo el ratón no obtendría el foco.
- EVT_LEFT_UP(func)
- Procesa un evento wxEVT_LEFT_UP.
- EVT_LEFT_DCLICK(func)
- Procesa un evento wxEVT_LEFT_DCLICK.
- EVT_MIDDLE_DOWN(func)
- Procesa un evento wxEVT_MIDDLE_DOWN.
- EVT_MIDDLE_UP(func)
- Procesa un evento wxEVT_MIDDLE_UP.
- EVT_MIDDLE_DCLICK(func)
- Procesa un evento wxEVT_MIDDLE_DCLICK.
- EVT_RIGHT_DOWN(func)
- Procesa un evento wxEVT_RIGHT_DOWN.
- EVT_RIGHT_UP(func)
- Procesa un evento wxEVT_RIGHT_UP.
- EVT_RIGHT_DCLICK(func)
- Procesa un evento wxEVT_RIGHT_DCLICK.
- EVT_MOUSE_AUX1_DOWN(func)
- Procesa un evento wxEVT_AUX1_DOWN.
- EVT_MOUSE_AUX1_UP(func)
- Procesa un evento wxEVT_AUX1_UP.
- EVT_MOUSE_AUX1_DCLICK(func)
- Procesa un evento wxEVT_AUX1_DCLICK.
- EVT_MOUSE_AUX2_DOWN(func)
- Procesa un evento wxEVT_AUX2_DOWN.
- EVT_MOUSE_AUX2_UP(func)
- Procesa un evento wxEVT_AUX2_UP.
- EVT_MOUSE_AUX2_DCLICK(func)
- Procesa un evento wxEVT_AUX2_DCLICK.
- EVT_MOTION(func)
- Procesa un evento wxEVT_MOTION.
- EVT_ENTER_WINDOW(func)
- Procesa un evento wxEVT_ENTER_WINDOW.
- EVT_LEAVE_WINDOW(func)
- Procesa un evento wxEVT_LEAVE_WINDOW.
- EVT_MOUSEWHEEL(func)
- Procesa un evento wxEVT_MOUSEWHEEL.
- EVT_MOUSE_EVENTS(func)
- Procesa todos los eventos del ratón.
- EVT_MAGNIFY(func)
- Procesa un evento wxEVT_MAGNIFY (nuevo desde wxWidgets 3.1.0).
Funciones miembro
wxMouseEvent()
wxMouseEvent::wxMouseEvent(wxEventType mouseEventType = wxEVT_NULL)
Constructor.
Los tipos de evento válidos son:
- wxEVT_ENTER_WINDOW
- wxEVT_LEAVE_WINDOW
- wxEVT_LEFT_DOWN
- wxEVT_LEFT_UP
- wxEVT_LEFT_DCLICK
- wxEVT_MIDDLE_DOWN
- wxEVT_MIDDLE_UP
- wxEVT_MIDDLE_DCLICK
- wxEVT_RIGHT_DOWN
- wxEVT_RIGHT_UP
- wxEVT_RIGHT_DCLICK
- wxEVT_AUX1_DOWN
- wxEVT_AUX1_UP
- wxEVT_AUX1_DCLICK
- wxEVT_AUX2_DOWN
- wxEVT_AUX2_UP
- wxEVT_AUX2_DCLICK
- wxEVT_MOTION
- wxEVT_MOUSEWHEEL
- wxEVT_MAGNIFY
Aux1DClick()
bool wxMouseEvent::Aux1DClick() const
Devuelve true si el evento fue un primer doble click de botón extra.
Aux1Down()
bool wxMouseEvent::Aux1Down() const
Devuelve true si el primer botón extra del ratón cambió a pulsado.
Aux1Up()
bool wxMouseEvent::Aux1Up() const
Devuelve true si el primer botón extra del ratón cambió a soltado.
Aux2DClick()
bool wxMouseEvent::Aux2DClick() const
Devuelve true si el evento fue un segundo doble click de botón extra.
Aux2Down()
bool wxMouseEvent::Aux2Down() const
Devuelve true si el segundo botón extra del ratón cambió a pulsado.
Aux2Up()
bool wxMouseEvent::Aux2Up() const
Devuelve true si el segundo botón extra del ratón cambió a soltado.
Button()
bool wxMouseEvent::Button(wxMouseButton but) const
Devuelve true si el evento fue generado por el botón especificado.
ButtonDClick()
bool wxMouseEvent::ButtonDClick(wxMouseButton but = wxMOUSE_BTN_ANY) const
Si se omite el argumento, devuelve verdadero si el evento fue un evento de doble clic del ratón.
En caso contrario, el argumento especifica qué evento de doble clic se generó (véase Button() para los valores posibles).
ButtonDown()
bool wxMouseEvent::ButtonDown(wxMouseButton but = wxMOUSE_BTN_ANY) const
Si se omite el argumento, devuelve verdadero si el evento fue un evento de botón del ratón pulsado.
En caso contrario, el argumento especifica qué evento de botón pulsado se generó (véase Button() para los valores posibles).
ButtonUp()
bool wxMouseEvent::ButtonUp(wxMouseButton but = wxMOUSE_BTN_ANY) const
Si se omite el argumento, devuelve verdadero si el evento fue un evento de botón de ratón soltado.
En caso contrario, el argumento especifica qué evento de botón arriba se generó (véase Button() para los valores posibles).
Dragging()
bool wxMouseEvent::Dragging() const
Devuelve true si se trata de un evento de arrastre (movimiento mientras se pulsa un botón).
Entering()
bool wxMouseEvent::Entering() const
Devuelve true si el ratón ha entrado en la ventana.
GetButton()
int wxMouseEvent::GetButton() const
Devuelve el botón del ratón que generó este evento o wxMOUSE_BTN_NONE si no hay ningún botón involucrado (para eventos de mover, entrar o salir del ratón, por ejemplo).
En caso contrario se devuelve wxMOUSE_BTN_LEFT para los eventos de botón izquierdo pulsado, soltado y doble click, wxMOUSE_BTN_MIDDLE y wxMOUSE_BTN_RIGHT para los mismos eventos para los botones central y derecho respectivamente.
GetClickCount()
int wxMouseEvent::GetClickCount() const
Devuelve el número de clics del ratón para este evento: 1 para un clic simple, 2 para un doble clic, 3 para un triple clic y así sucesivamente.
Actualmente esta función sólo está implementada en wxMac y devuelve -1 para el resto de plataformas (aunque se pueden distinguir los clics simples de los dobles, ya que generan diferentes tipos de eventos).
GetColumnsPerAction()
int wxMouseEvent::GetColumnsPerAction() const
Devuelve el número configurado de columnas (o lo que sea) que se desplazarán por acción de la rueda.
El valor por defecto en la mayoría de las plataformas es tres.
GetLinesPerAction()
int wxMouseEvent::GetLinesPerAction() const
Devuelve el número configurado de líneas (o lo que sea) que se desplazarán por acción de la rueda.
El valor por defecto en la mayoría de las plataformas es tres.
GetLogicalPosition()
Devuelve la posición lógica del ratón en píxeles (es decir, traducida según la traducción establecida para el DC, lo que suele indicar que la ventana se ha desplazado).
GetMagnification()
float wxMouseEvent::GetMagnification() const
Para eventos de ampliación (pellizcar para ampliar): devuelve el cambio en la ampliación.
Un valor de 0 significa que no hay cambio, un valor positivo significa que debemos ampliar (o acercar), un valor negativo significa que debemos reducir (o alejar).
Este método sólo es válido para llamar a eventos wxEVT_MAGNIFY que actualmente sólo se generan bajo macOS.
GetWheelAxis()
wxMouseWheelAxis wxMouseEvent::GetWheelAxis() const
Obtiene el eje al que afecta la operación de la rueda.
Normalmente la rueda del ratón se utiliza para desplazarse verticalmente por lo que se devuelve wxMOUSE_WHEEL_VERTICAL pero algunos ratones (y la mayoría de trackpads) también permiten utilizar la rueda para desplazarse horizontalmente en cuyo caso se devuelve wxMOUSE_WHEEL_HORIZONTAL
.Hay que tener en cuenta que antes de wxWidgets 2.9.4 este método devolvía int.
GetWheelDelta()
int wxMouseEvent::GetWheelDelta() const
Obtiene el delta de la rueda, normalmente 120.
Este es el umbral para la acción a tomar, y una acción de este tipo (por ejemplo, desplazarse un incremento) debe ocurrir por cada delta.
GetWheelRotation()
int wxMouseEvent::GetWheelRotation() const
Obtiene la rotación de la rueda, positivo o negativo indica la dirección de rotación.
Todos los dispositivos actuales envían un evento cuando la rotación es al menos +/-WheelDelta, pero en el futuro se podrán crear dispositivos de resolución más fina.
Debido a esto no se debería asumir que un evento equivale a 1 línea, pero se debería ser capaz de hacer un desplazamiento de línea parcial o esperar hasta que se acumulen varios eventos antes de desplazarte.
IsButton()
bool wxMouseEvent::IsButton() const
Devuelve true si el evento fue un evento de botón del ratón (no necesariamente un evento de botón pulsado - eso puede comprobarse usando ButtonDown()).
IsPageScroll()
bool wxMouseEvent::IsPageScroll() const
Devuelve true si el sistema ha sido configurado para hacer desplazamiento de página con la rueda del ratón en lugar de desplazamiento de línea.
IsWheelInverted()
bool wxMouseEvent::IsWheelInverted() const
En Mac, ¿ha seleccionado el usuario el desplazamiento "Natural" en sus Preferencias del Sistema? Actualmente es falso en todos los demás sistemas operativos.
Desplazamiento "natural" significa que el contenido se desplaza en la dirección opuesta, y si está desplazando contenido, no se necesita utilizar esta función porque macOS ya ha invertido la dirección de desplazamiento. Pero puede haber situaciones especiales en las que se quiera que la acción de la rueda del ratón funcione siempre en la misma dirección y en ese caso se necesitará esta función.
Leaving()
bool wxMouseEvent::Leaving() const
Devuelve true si el ratón salió de la ventana.
LeftDClick()
bool wxMouseEvent::LeftDClick() const
Devuelve true si el evento fue un doble click izquierdo.
LeftDown()
bool wxMouseEvent::LeftDown() const
Devuelve true si el botón izquierdo del ratón cambió a pulsado.
LeftUp()
bool wxMouseEvent::LeftUp() const
Devuelve true si el botón izquierdo del ratón cambió a soltado.
Magnify()
bool wxMouseEvent::Magnify() const
Devuelve true si el evento es un evento de ampliación (es decir, pellizcar para ampliar).
Estos eventos sólo se generan actualmente en macOS.
MetaDown()
bool wxMouseEvent::MetaDown() const
Devuelve true si la tecla Meta estaba abajo en el momento del evento.
MiddleDClick()
bool wxMouseEvent::MiddleDClick() const
Devuelve true si el evento fue un doble click central
MiddleDown()
bool wxMouseEvent::MiddleDown() const
Devuelve true si el botón central del ratón cambió a pulsado.
MiddleUp()
bool wxMouseEvent::MiddleUp() const
Devuelve true si el botón central del ratón cambió a soltado.
Moving()
bool wxMouseEvent::Moving() const
Devuelve true si se trata de un evento de movimiento y no se ha pulsado ningún botón del ratón.
Si se mantiene pulsado algún botón del ratón, este método devuelve false y Dragging() devuelve true.
RightDClick()
bool wxMouseEvent::RightDClick() const
Devuelve true si el evento fue un doble click derecho.
RightDown()
bool wxMouseEvent::RightDown() const
Devuelve true si el botón derecho del ratón cambió a pulsado.
RightUp()
bool wxMouseEvent::RightUp() const
Devuelve true si el botón derecho del ratón cambió a soltado.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxEvent, wxObject, wxMouseState y wxKeyboardState.