ProgressBar in Farbe und Bunt ;)
 Info  
Von : Wolfgang Kluge
 Zusatz  
Beispielprojekt (1,92kB)
Printfreundliche Ansicht
 
 Fortschrittsanzeige mit VB-Boardmitteln
bei vb@archiv.de
Die ProgressBar ist ein recht häufig verwendetes Control aus der MS-CommonControls-Reihe.
Sollte es wohl auch, da ein User bekanntlich nicht gerne waret(es sei denn das Programm nennt sich Navigator*g*) und ihm eine solche ProgressBar unmissverständlich zu verstehen gibt, dass da noch was läuft.

Nun ist es aber so, dass genau diese Progressbar(es gibt unendlich viele Ersatzmöglichkeiten) nicht unbedingt als "Farbwunder" bekannt ist. Aus derselben Rechtfertigungsgrundlage stammt wohl die Idee, in der für VB zugänglichen Version keine Möglichkeit anzubieten, irgendwelche Farben zu setzen.
Der Hintersinn liegt wahrscheinlich darin, dass man sich dachte Windows-Konforme Anwendungen sollten auch die Benutzereinstellungen der Farben beibehalten (Grundsätzlich mal eine sehr gute Idee).

Was soll man aber mit mit irgendwelchen besonderen Designs tun. Nun, da gibt es zum einen die Auswahlmöglichkeit an den(oben kurz angesprochenen) Ersatz-Controls, oder aber, wenn es denn Ausreicht, eine kleine Veränderung auf API-Basis.

 Deklaration:
Private Const PBM_SETBARCOLOR = &H409
Private Const PBM_SETBKCOLOR = &H2001

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


Und schon kanns losgehen

' Vordergrundfarbe setzen
PostMessage p1.hwnd, PBM_SETBARCOLOR, 0, RGB(&HFF, &HCC, &H0)

' Hintergrundfarbe setzen
PostMessage p1.hwnd, PBM_SETBKCOLOR, 0, RGB(&H33, &H66, &H99)


Und so kanns dann aussehen: