
saludos
------------------
| |||
cambiar color de fondo de un TreeV Hola, alguien sabe como cambiar el background color de un TreeView ? yo tengo un ejemplo, pero el tema es que los nodos no toman el color, ya probe mil cosas pero nada ![]() saludos ------------------
__________________ Recursos visual basic |
| |||
hola nose si sera el mismo ejemplo pero por las dudas te lo paso Cita: claro que cada ves que agregas un nodo tuvieras que hacer lo siguientePrivate Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = -16& Private Const TVM_SETBKCOLOR = 4381& Private Const TVM_GETBKCOLOR = 4383& Private Const TVS_HASLINES = 2& Private Sub Form_Load() Dim nodX As Node Set nodX = TreeView1.Nodes.Add(, , "R", "Root") Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1") Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2") Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3") Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4") nodX.EnsureVisible TreeView1.Style = tvwTreelinesText ' Style 4. TreeView1.BorderStyle = vbFixedSingle Dim i As Integer For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).BackColor = vbRed Next Dim lngStyle As Long Call SendMessage(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0)) 'cambiar el fondo a rojo 'resetar el estilo para que se vean correctamente las líneas lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE) Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle - TVS_HASLINES) Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle) End Sub For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).BackColor = vbRed Next o bien hacer un gancho con hook (CallWindowProc) pero me parece que es menos probleas de la primera forma Saludos
__________________ www.leandroascierto.com |
| |||
Hola Leandro gracias funciona Ok. el que estaba usando yo era de otra forma. Ahora una duda, viste que usa SetWindowsLong para las lineas, pero yo le quite las llamadas y solo ejecute SendMEssage y funciona , y las lineas del TreeV se ven bien .¿ A vos también ? saludos !!
__________________ Recursos visual basic |
| |||
Hola si es cierto no lo havia provado y por lo que veo esas lineas estan de mas o porlomenos no veo ningun cambio Saludos
__________________ www.leandroascierto.com |