Ngôn ngữ lập trình: vb6
Tác giả: Jcis
Chức năng: VB6 - Change your Toolbar Background (Color or Picture)
Module
Mã: Chọn tất cả
Option Explicit Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ ByVal hWnd1 As Long, ByVal hWnd2 As Long, _ ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" ( _ ByVal hwnd As Long, ByVal nindex As Long, ByVal dwnewlong As Long) As Long Public Declare Function InvalidateRect Lib "user32" _ (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As Long Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Public Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long Public Enum enuTBType enuTB_FLAT = 1 enuTB_STANDARD = 2End Enum Private Const GCL_HBRBACKGROUND = (-10) Public Sub ChangeTBBack(TB As Object, PNewBack As Long, pType As enuTBType)Dim lTBWnd As Long Select Case pType Case enuTB_FLAT 'FLAT Button Style Toolbar DeleteObject SetClassLong(TB.hwnd, GCL_HBRBACKGROUND, PNewBack) 'Its Flat, Apply directly to TB Hwnd Case enuTB_STANDARD 'STANDARD Button Style Toolbar lTBWnd = FindWindowEx(TB.hwnd, 0, "msvb_lib_toolbar", vbNullString) 'Standard, find Hwnd first DeleteObject SetClassLong(lTBWnd, GCL_HBRBACKGROUND, PNewBack) 'Set new Back End SelectEnd Sub'=================================================================================================================' If you want to use Win Common Control 5 Toolbars, use "ToolbarWindow32" instead of "msvb_lib_toolbar"' Win Common Control 5 Toolbars can't be FLAT, they are always STANDARD, so use enuTB_STANDARD when you call this'=================================================================================================================
Mã: Chọn tất cả
Option Explicit Private Sub Form_Load() ApplyChangesEnd Sub Private Sub ApplyChanges() Dim LngNew As Long 'Use a picture with the FLAT TB (Toolbar1) LngNew = CreatePatternBrush(Picture1.Picture.Handle) 'Creates the background from a Picture Handle ChangeTBBack Toolbar1, LngNew, enuTB_FLAT 'Change Backcolor to STANDARD TB (Toolbar2) LngNew = CreateSolidBrush(RGB(240, 120, 120)) 'Creates the background from a Color (Long) ChangeTBBack Toolbar2, LngNew, enuTB_STANDARD 'Refresh Screen to see changes InvalidateRect 0&, 0&, FalseEnd Sub