elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / .NET (C#, VB.NET, ASP) / Re: Agregar mensaje WM_MOUSEMOVE en header de listview 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
  1. Protected Overrides Sub WndProc(ByRef m As Message)
  2.  If m.Msg = WM_MOUSEMOVE Then
  3.    'Este procedimiento quiero que sea del header y no de ListView
  4.  End If
  5.  MyBase.WndProc(m)
  6. End Sub
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.
12  Programación / .NET (C#, VB.NET, ASP) / Agregar mensaje WM_MOUSEMOVE en header de listview 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
  1. Protected Overrides Sub WndProc(ByRef m As Message)
  2.  If m.Msg = WM_MOUSEMOVE Then
  3.    'Procesar mensaje cuando pase el mouse encima del header del ListView
  4.  End If
  5.  MyBase.WndProc(m)
  6. End Sub

Gracias de antemano por sus respuestas.
13  Programación / .NET (C#, VB.NET, ASP) / Re: Listview header modificado en listview vbnet en: 29 Enero 2016, 23:26 pm
Gracias Lekim por responder a la pregunta, lo que quisiera saber como cambiar el backcolor en el header de la parte derecha del sobrante, es decir que toda la barra del header quede de un solo color.
lo que quiero hacer es que se cambie el backcolor de otro color sin utilizar el evento DrawColumnHeader y sin perder los efectos cuando el mouse pasa por encima, por eso decía si se puede modificar solo el backcolor usando alguna api de windows para eso.

tengo mi código que es lo siguiente, lo repinta toda la barra del header pero lo borra las columnas existentes.

Librerias:
Código
  1. Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As IntPtr, ByVal hwndChildAfter As IntPtr, ByVal lpszClass As String, ByVal lpszWindow As String) As IntPtr
  2.  Private Declare Function GetClientRect Lib "user32.dll" (ByVal hwnd As IntPtr, ByRef lpRect As RECT) As Integer
  3.  Private Declare Function FillRect Lib "USER32.DLL" (ByVal hDC As Integer, ByRef lpRC As RECT, ByVal hBR As Integer) As Integer
  4.  Private Declare Function CreateSolidBrush Lib "GDI32.DLL" (ByVal crColor As Integer) As Integer
  5.  Private Declare Function DeleteObject Lib "GDI32.DLL" (ByVal hObject As Integer) As Integer
  6.  Private Declare Function GetDC Lib "user32" (ByVal hwnd As IntPtr) As Integer
  7.  Private Structure RECT
  8.    Dim Left As Integer
  9.    Dim Top As Integer
  10.    Dim Right As Integer
  11.    Dim Bottom As Integer
  12.  End Structure
  13.  
  14. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  15.    Dim m_HdrHwnd As IntPtr, x As IntPtr, rt As RECT, hBrush As Integer, dc As Integer
  16.    m_HdrHwnd = FindWindowEx(ListView1.Handle, 0, "SysHeader32", vbNullString)
  17.    x = GetClientRect(m_HdrHwnd, rt)
  18.    dc = GetDC(m_HdrHwnd)
  19.    hBrush = CreateSolidBrush(14563858)
  20.    FillRect(dc, rt, hBrush)
  21.  End Sub


mas o menos quiero algo así como en esta imagen en el siguiente link



Gracias por responderme.
  
14  Programación / .NET (C#, VB.NET, ASP) / Listview header modificado en listview vbnet en: 8 Diciembre 2015, 20:06 pm
Saludos a todos los componentes de este foro, lo que quiero consultarles es como puedo cambiar el backcolor y forecolor en el header de un listview en vbnet con las apis de windows, se los agradeceré mucho y espero tener suerte...
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines