Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cambiar Color de Toolbar (solo a una)

Estas en el tema de Cambiar Color de Toolbar (solo a una) en el foro de Visual Basic clásico en Foros del Web. Hola Buenas Tardes, posteo el siguiente codigo que me encontre por internet para cambiar el color del Toolbar, el inconveniente es que me cambia todos ...
  #1 (permalink)  
Antiguo 19/08/2010, 16:09
Avatar de hugo180486  
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 7 meses
Puntos: 3
Cambiar Color de Toolbar (solo a una)

Hola Buenas Tardes, posteo el siguiente codigo que me encontre por internet para cambiar el color del Toolbar, el inconveniente es que me cambia todos los Toolbar de color, y yo quiero tener colores independientes... Espero alguien ya haya pasado por esto y tenga una solucion, saludos! De antemano Gracias por la atencion prestada.

Código vb:
Ver original
  1. Option Explicit
  2. Private Const COLOR_BTNFACE = 15 'Button
  3. Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
  4. Private Declare Function GetSysColorBrush Lib "user32" (ByVal nIndex As Long) As Long
  5. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
  6. ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
  7. ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  8. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  9. Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" ( _
  10. ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  11. Private Declare Function InvalidateRect Lib "user32" _
  12. (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As Long
  13. Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  14. Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
  15.  
  16. Private Enum enuTBType
  17.     enuTB_FLAT = 1
  18.     enuTB_STANDARD = 2
  19. End Enum
  20.  
  21. Private Const GCL_HBRBACKGROUND = (-10)
  22.  
  23. Public Sub setToolbarBackgroundColor(tlbBar As MSComctlLib.Toolbar, color As Long, Optional restore As Boolean = False)
  24.    
  25.     Dim LngNew As Long
  26.    
  27.     If (restore) Then
  28.         LngNew = GetSysColorBrush(COLOR_BTNFACE)
  29.     Else
  30.         LngNew = CreateSolidBrush(color) '(RGB(157, 185, 167))
  31.    End If
  32.     'LngNew = CreatePatternBrush(Picture1.Picture.Handle) 'Creates the background from a Picture Handle
  33.  
  34.     If (tlbBar.Style = tbrFlat) Then
  35.         ChangeTBBack tlbBar, LngNew, enuTB_FLAT
  36.     Else
  37.         'Change Backcolor to STANDARD TB (Toolbar2)
  38.        ChangeTBBack tlbBar, LngNew, enuTB_STANDARD
  39.     End If
  40.  
  41.     'Refresh Screen to see changes
  42.    InvalidateRect 0&, 0&, False
  43.    
  44. End Sub
  45. Private Sub ChangeTBBack(TB As Object, PNewBack As Long, pType As enuTBType)
  46.     Dim lTBWnd As Long
  47.     Select Case pType
  48.     Case enuTB_FLAT 'FLAT Button Style Toolbar
  49.        DeleteObject SetClassLong(TB.hwnd, GCL_HBRBACKGROUND, PNewBack)
  50.         'Its Flat, Apply directly to TB Hwnd
  51.        Case enuTB_STANDARD 'STANDARD Button Style Toolbar
  52.        lTBWnd = FindWindowEx(TB.hwnd, 0, "msvb_lib_toolbar", vbNullString) 'Standard, find Hwnd first
  53.        DeleteObject SetClassLong(lTBWnd, GCL_HBRBACKGROUND, PNewBack)
  54.         'Set new Back
  55.    End Select
  56. End Sub
  57.  
  58. '// Con este procedimiento pones las ToolBar con el Color Original el Grisaceo
  59. '// Pasas como parametro un color, pero no lo toma en cuenta.
  60. '// Pasas como parametro un Toolbar (Ej Me.tblGuardar) pero ignora el Toolbar y se los cambia a todos los de la aplicaicon.
  61. Call setToolbarBackgroundColor(Me.tblGuardar, vbRed, True)
  62.  
  63. '// En cambio si pones el tercer parameto como false, el color cambiara
  64. Call setToolbarBackgroundColor(Me.tblGuardar, vbWhite, False)

Recuerden que cambia todos los toolbar, alquien sabe como cambiar el oclor solo a un Toolbar...

Etiquetas: color, toolbar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.