Título: Agregar mensaje WM_MOUSEMOVE en header de listview Publicado por: Juan Sanchez en 15 Agosto 2016, 18:09 pm Saludos a todos los integrantes del foro, bueno debo acudir a ustedes por un tema que tal ves no es tan necesario.
al parecer el ListView de VB.NET en la vista detalle no genera el mensaje WM_MOUSEMOVE cuando se pasa el mouse sobre las columnas de la cabecera o como se conoce header, y mi pregunta es como puedo agregar a la cola de mensajes de windows al header de listview en vb net para que cuando pase el mouse encima del header me mande ese mensaje. Código
Gracias de antemano por sus respuestas. Título: Re: Agregar mensaje WM_MOUSEMOVE en header de listview Publicado por: Eleкtro en 16 Agosto 2016, 08:36 am Para empezar a indagar en el asunto, puedes enviar el mensaje LVM_GETHEADER al listview para obtener el handle de la ventana del header y seguidamente obtener rectangle de la ventana con la función GetWindowRectangle, y así al menos conocerás la posición y tamaño del header.
Por mi parte no logro hallar una posible solución, está dificil, me encontré con varias complicaciones y al final desistí, pero quizás con la información que te he proporcionado tu puedas llegar a alguna idea que a mi no se me ocurrió. Te dejo aquí las definiciones necesarias: Código
Saludos! Título: Re: Agregar mensaje WM_MOUSEMOVE en header de listview Publicado por: Juan Sanchez en 20 Agosto 2016, 23:07 pm Bueno agradezco tu respuesta que siempre es bueno salir de dudas, lo que veo es que el procedimiento
Código es de la ventana ListView donde espera todos los mensajes a esa ventana y la ventana o el header es otra entonces se debe esperar casi de la misma forma los mensajes del header, en este caso el header solo envia el mensaje WM_NOTIFY a su ventana padre que es el ListView, no se si estoy equivocado quisiera que me despejen esa duda, y si fuese así como se haría para esperar los mensajes del header al igual que el listview con que apis o funciones se implementaría, leí en la web la API CallWindowProcA y CallWindowProcW pareciera que hacen eso, ahora mi idea se centra en implementar un procedimiento para el header y asi obtener el mensaje WM_MOUSEMOVE y otros como de su ventana padre listview. Espero que me ayuden con eso, les agradezco por su ayuda, muchas gracias Elektro. Título: Re: Agregar mensaje WM_MOUSEMOVE en header de listview Publicado por: Juan Sanchez en 21 Agosto 2016, 04:34 am Tambien encontré en la web esta clase para capturar los mensajes de una ventana asignando un handle en el siguiente link https://msdn.microsoft.com/en-us/library/system.windows.forms.nativewindow.assignhandle(v=vs.110).aspx (https://msdn.microsoft.com/en-us/library/system.windows.forms.nativewindow.assignhandle(v=vs.110).aspx)
Código Segun lo que entiendo esta clase escucha todos los mensajes del header de listview, y disculpen mi ignorancia estoy aprendiendo el lenguaje vb net, como integro la clase HeaderControl a mi clase Listview que es la siguiente. Código
Gracias de antemano |