|
|
![]() |
|
||
|
|
|||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
| Visual Basic Common Control API
Routines SendMessage: Change the Colour of a VB ProgressBar |
||
| Posted: | Monday October 29, 2001 | |
| Updated: | Monday December 26, 2011 | |
| Applies to: | VB4-32, VB5, VB6 | |
| Developed with: | VB6, Windows XP | |
| OS restrictions: | None | |
| Author: | VBnet - Randy Birch | |
|
Related: |
SetParent: Add a VB Progress Bar to a VB StatusBar Pure VB: Customizable PhotoShop-Style ProgressBar Pure VB: Customizable PhotoShop-Style ProgressBar in a MDI App CreateWindowEx: Creating a Common Control ProgressBar- Overview CreateWindowEx: Creating the Common Control Flood Panel via the API SetParent: Display Modal Form Activity on a Parent Form's 'PhotoShop-style' ProgressBar SetParent: Display Modal Form Activity in a Parent Form's VB ProgressBar |
|
| Prerequisites |
| None. This method works against both the Visual Basic 5 and Visual Basic 6 Common Control progress bar. |
|
|
Here's
a quick SendMessage method to change the bar and / or back colours of both
a VB5 or VB6 progress bar, or an API-created progress bar. Note that on
XP, using the 'Silver' theme, the default bar colour is grey, not the
usual blue. |
| BAS Module Code |
| None. |
|
|
| Form Code |
|
|
| To a new form add four progress bars (ProgressBar1 - ProgressBar4), three command buttons (Command1 - Command3), a common dialog control (CommonDialog1), and the following code: |
|
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Const WM_USER = &H400
Private Const CCM_FIRST As Long = &H2000&
Private Const CCM_SETBKCOLOR As Long = (CCM_FIRST + 1)
'set progressbar backcolor in IE3 or later
Private Const PBM_SETBKCOLOR As Long = CCM_SETBKCOLOR
'set progressbar barcolor in IE4 or later
Private Const PBM_SETBARCOLOR As Long = (WM_USER + 9)
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Form_Load()
SetProgressBarColour ProgressBar2.hwnd, RGB(205, 0, 0)
SetProgressBarColour ProgressBar3.hwnd, RGB(0, 205, 0)
SetProgressBarColour ProgressBar4.hwnd, RGB(205, 205, 0)
End Sub
Private Sub Command1_Click()
Static cnt As Long
Static action As Boolean
action = Not action
If action = True Then
Command1.Caption = "Stop"
For cnt = 1 To ProgressBar1.Max
ProgressBar1.Value = cnt
ProgressBar2.Value = cnt
ProgressBar3.Value = cnt
ProgressBar4.Value = cnt
'needed to trap cancel click
DoEvents
Next
Else
Command1.Caption = "Run"
cnt = ProgressBar1.Max
End If
End Sub
Private Sub Command2_Click()
Dim clrref As Long
On Local Error GoTo Command2_error
With CommonDialog1
.CancelError = True
.ShowColor
SetProgressBarColour ProgressBar4.hwnd, .Color
End With
Command2_exit:
Exit Sub
Command2_error:
Resume Command2_exit
End Sub
Private Sub Command3_Click()
Dim clrref As Long
On Local Error GoTo Command3_error
With CommonDialog1
.CancelError = True
.ShowColor
SetProgressBackColour ProgressBar4.hwnd, .Color
End With
Command3_exit:
Exit Sub
Command3_error:
Resume Command3_exit
End Sub
Private Sub SetProgressBarColour(hwndProgBar As Long, ByVal clrref As Long)
Call SendMessage(hwndProgBar, PBM_SETBARCOLOR, 0&, ByVal clrref)
End Sub
Private Sub SetProgressBackColour(hwndProgBar As Long, ByVal clrref As Long)
Call SendMessage(hwndProgBar, PBM_SETBKCOLOR, 0&, ByVal clrref)
End Sub
|
| Comments |
|
|
|
|
|
|||||
|
|||||
|
|
|||||
|
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |
![]() |