Necesito detectar cuando el usuario mueve el mouse sobre el formulario y todos sus controles secundarios y también cuando abandona el formulario. Probé los MouseEnter
y MouseLeave
eventos del formulario, probé el WM_MOUSEMOVE
& WM_MOUSELEAVE
y WM_NCMOUSEMOVE
& WM_NCMOUSELEAVE
pares de mensajes de ventanas, pero ninguno parece funcionar como quiero ...¿Cómo detectar si el mouse está dentro de todo el formulario y controles secundarios?
mayor parte de mi forma es ocupada por los controles secundarios de muchos tipos, no hay mucho área de cliente visible. Esto significa que si muevo el mouse muy rápidamente, el movimiento del mouse no se detectará, aunque el mouse está dentro del Formulario.
Por ejemplo, tengo un cuadro de texto que se acopla en la parte inferior y entre el escritorio y el cuadro de texto, sólo hay una pequeña frontera. Si muevo el mouse rápidamente de la parte inferior al TextBox, no se detectará el movimiento del mouse, pero el mouse está dentro del TextBox, por lo tanto, dentro del Formulario.
¿Cómo puedo lograr lo que necesito?
Eso sólo hace que funcione a la inversa ... Es decir, ahora se detecta cuando el ratón está sobre el Formulario de controles secundarios, pero no la forma en sí. Quiero detectar TODO. También necesito detectar cuándo el mouse entró al Formulario y cuándo se fue, no solo que se está moviendo hacia adentro. –
Bueno, he encontrado exactamente lo que estaba buscando en este ejemplo: http://netcode.ru/dotnet/?lang=&katID=30&skatID=283&artID=7862. Utiliza el mismo principio que tu respuesta, el IMessageFilter. Y me permite detectar cuando el mouse entra y sale del formulario. Solo tengo que adaptar y quitar el código a lo que quiero. De todos modos, si pudiera elaborar su respuesta en el IMessageFilter, qué es, cómo funciona y todo eso, marcaré esta respuesta como la aceptada. Y por favor agregue una nota para verificar los comentarios de otras personas que buscan una solución al mismo problema. –
¿Viste mi solicitud TcKS? Tal vez lo hagas esta vez ... ¿Podrías editar tu publicación y elaborar un poco sobre el tema completo de IMessageFilter y cómo funciona? –