Rubrik: Controls · StatusBar/ProgressBar | VB-Versionen: VB4, VB5, VB6 | 02.04.03 |
Magische ProgressBar Diese Progressbar ist natürlich nicht verzaubert, aber in diesem Tipp lernen Sie wie man einer ProgressBar ab einem bestimmten Wert einfärbt. | ||
Autor: EnnY Albi | Bewertung: | Views: 32.756 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Diese Progressbar ist natürlich nicht verzaubert, aber in diesem Tipp lernen Sie, wie man einer ProgressBar ab einem bestimmten Wert einfärbt.
' zunächst die benötigte API-Deklaration Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Sub Sleep Lib "kernel32" ( _ ByVal dwMilliseconds As Long) Const PBM_SETBARCOLOR = &H409
' Farbe der Standard-ProgressBar ändern Private Sub SetProgressBarColor(ByVal hwnd As Long, _ ByVal nChangecolor As Long) Dim RVal As Long RVal = SendMessage(hwnd, PBM_SETBARCOLOR, 0&, _ nChangecolor) End Sub
Fügen Sie obigen Code in die Form1. Platzieren Sie dann eine Standard ProgressBar auf die Form, sowie einen CommandButton.
' Demo: Fortschrittsbalken ' Begonnen wird mit grün, ab 60% wird's gelb und ab ' 85% wird's rot ;-) Private Sub Command1_Click() Dim I As Long Dim nMax As Long nMax = 100 ' Mit grüner Farbe beginnen With ProgressBar1 .Min = 0: .Max = nMax SetProgressBarColor .hwnd, vbGreen For I = 1 To nMax If I = 60 Then ' Ab 60% gelb SetProgressBarColor .hwnd, vbYellow ElseIf I = 85 Then ' Ab 85% rot SetProgressBarColor .hwnd, vbRed End If .Value = I DoEvents Sleep 25 Next I End With End Sub