Cómo cambiar el color de fondo del Control TreeView

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 178491
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Resumen
Este artículo muestra cómo cambiar el color de fondo del control TreeView para ajustar los requisitos de interfaz de usuario.
Más información
El archivo de biblioteca de controles personalizados, comctl32.dll, versión 4.70 o posterior, se requiere para cambiar el color de fondo de TreeView. Este archivo está disponible al instalar Internet Explorer versión 4.0 o posterior. Tenga en cuenta que este archivo no es actualmente redistribuible. Si necesita este archivo, debe requerir a los usuarios instalar Internet Explorer 4.0. Revise la información sobre los derechos de uso y redistribución para Microsoft Internet Explorer ubicado en:

Debe tienes preguntas acerca de la licencia de Internet, póngase en contacto con ieak@microsoft.com.

Para cambiar el color de fondo de un control TreeView, puede llamar a las siguientes funciones de API de Windows:
  • SendMessage - envía el mensaje especificado a una ventana o ventanas.
  • GetWindowLong - recupera información acerca de la ventana especificada.
  • SetWindowLong - cambia un atributo de la ventana especificada.
La sección siguiente muestra cómo crear un proyecto de ejemplo que muestra cómo utilizar estas funciones para cambiar el color de fondo. La sección se supone que tiene la versión correcta del archivo comctl32.dll instalado en el equipo.

Nota: Si la presentación de la copia de Windows está establecido para 256 colores o menos, utilizando un color interpolado como el color de fondo producirá resultados poco satisfactorios. Esto es porque el TreeView y la mayoría de los otros controles de Windows no puede mostrar texto sobre un fondo interpolado. Cambie el último parámetro de la llamada a SendMessage a RGB(200, 255, 200) para ver este efecto.

Nota : Microsoft recomienda que no es Utilice este método para cambiar el color de fondo con la versión de mscomctl.ocx del control TreeView. Si lo hace, es responsabilidad suya.

Pasos para crear proyecto de ejemplo

  1. Inicie un nuevo proyecto EXE estándar en Visual Basic. Se creará Form1 de manera predeterminada.
  2. Agregue una referencia a los controles comunes de Microsoft completando los pasos siguientes:
  3. En el menú proyecto, haga clic en componentes.
  4. En la lista controles, consulte Microsoft Windows Common Controls.
  5. Haga clic en Aceptar para cerrar el cuadro de diálogo componentes.
  6. Agregue un control TreeView y un CommandButton a Form1.
  7. Copie el código siguiente en la ventana código del formulario Form1:
          Option Explicit      Private 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&      Dim frmlastForm As Form      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      End Sub      Private Sub Command1_Click()         Dim lngStyle As Long          Call SendMessage(TreeView1.hWnd, _                           TVM_SETBKCOLOR, _                           0, _                           ByVal RGB(255, 0, 0))  'Change the background                                                  'color to red.      ' Now reset the style so that the tree lines appear properly         lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)         Call SetWindowLong(TreeView1.hWnd, _                           GWL_STYLE, _                           lngStyle - TVS_HASLINES)         Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle)      End Sub					
  8. En el menú <B>Ejecutar</B>, haga clic en <B>Inicio</B> o presione la tecla F5 para iniciar el programa.
  9. Haga clic en el control CommandButton. El color de fondo TreeView cambia a rojo.
Referencias
Documentación de Platform SDK en las siguientes funciones:
  • SendMessage
  • GetWindowLong
  • SetWindowLong

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 178491 - Última revisión: 12/05/2015 08:15:12 - Revisión: 2.4

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.0 Edición de aprendizaje, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbnosurvey kbarchive kbmt kbhowto KB178491 KbMtes
Comentarios