¿Es un clic del mouse un mensaje WM_ * o una combinación de up & amp; mensajes abajo?
-
10-07-2019 - |
Pregunta
Estoy acostumbrado a trabajar con un marco de Windows que proporciona eventos para cosas como un clic del mouse o un doble clic del mouse. ¿Los eventos de clic son una construcción de Windows (es decir, Windows envía un mensaje WM_DOUBLECLICK o similar) o envía WM_MOUSEDOWN y WM_MOUSEUP a las aplicaciones que luego hacen algunos cálculos para decidir si el evento fue un clic o no?
Solución
Según documentación de MSDN El pedido correcto Los mensajes que verá para el evento de doble clic son: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK y WM_LBUTTONUP
Otros consejos
Es una combinación de mensajes enviados a través de WindowProc (). Los mensajes son WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, WM_LBUTTONUP para el botón izquierdo del mouse, WM_MBUTTONDOWN y así sucesivamente para el botón central, y WM_RBUTTONDOWN y así sucesivamente para el botón derecho del mouse. Consulte el SDK de Windows en MSDN para obtener más información .
Un clic del mouse no es una combinación de mensajes de Windows, pero puede generar, dependiendo de la aplicación en la que se haga clic. Hay una gran diferencia entre la entrada de Windows y los mensajes de Windows, ya que solo son una herramienta para algunas aplicaciones, que se utilizan de muchas maneras diferentes, como se explica en MSDN:
También proporcioné un ejemplo que muestra la diferencia claramente en mi pregunta ¿Cómo podría funcionar usar múltiples cursores en un cliente de Windows? Muestra qué mensajes se envían haciendo clic y que los mensajes de Windows a menudo no son suficientes para emular un clic del mouse, pero si son, cómo se pueden usar.