Share via


Informationen zu Statusleistensteuerelementen

Eine Statusleiste ist ein Fenster, das eine Anwendung verwenden kann, um den Fortschritt eines langwierigen Vorgangs anzugeben.

Es besteht aus einem Rechteck, das beim Fortschritt eines Vorgangs animiert wird.

Die folgende Abbildung zeigt eine Statusleiste, die keine visuellen Stile verwendet.

Screenshot einer Statusleiste, die Rechtecke in einer Zeile hinzufügt, um den Fortschritt anzuzeigen

Die folgende Abbildung zeigt eine Statusleiste mit visuellen Formatvorlagen. Die Darstellung des Steuerelements hängt vom Betriebssystem und dem ausgewählten Design ab. Weitere Informationen finden Sie unter Visuelle Stile.

Screenshot einer Statusleiste, die ein animiertes grünes Rechteck verlängert, um den Fortschritt anzuzeigen

Weitere Informationen sind unter den folgenden Überschriften enthalten.

Verwenden von Statusanzeigen

Sie können eine Statusanzeige erstellen, indem Sie die CreateWindowEx-Funktion verwenden und die PROGRESS_CLASS-Fensterklasse angeben. Diese Fensterklasse wird registriert, wenn die DLL für allgemeine Steuerelemente geladen wird. Weitere Informationen finden Sie unter Informationen zu allgemeinen Steuerelementen.

Das Steuerelement ist auch in der Microsoft Visual Studio-Toolbox verfügbar, wo es als Fortschrittssteuerung bezeichnet wird.

Bereich und aktuelle Position

Der Bereich einer Statusleiste stellt die gesamte Dauer des Vorgangs dar, und die aktuelle Position stellt den Fortschritt dar, den die Anwendung zum Abschluss des Vorgangs gemacht hat. Die Fensterprozedur verwendet den Bereich und die aktuelle Position, um den Prozentsatz der Fortschrittsleiste zu bestimmen, die mit der Hervorhebungsfarbe gefüllt werden soll.

Wenn Sie die Bereichswerte nicht festlegen, legt das System den Mindestwert auf 0 und den Höchstwert auf 100 fest. Sie können den Bereich mithilfe der PBM_SETRANGE Nachricht an praktische ganze Zahlen anpassen.

Eine Statusleiste stellt mehrere Nachrichten bereit, mit denen Sie die aktuelle Position festlegen können. Die PBM_SETPOS Nachricht legt die Position auf einen bestimmten Wert fest. Die PBM_DELTAPOS Nachricht erhöht die Position, indem sie der aktuellen Position einen angegebenen Wert hinzufügt.

Mit der PBM_SETSTEP Nachricht können Sie einen Schrittschritt für eine Statusleiste angeben. Wenn Sie anschließend die PBM_STEPIT Nachricht an die Statusleiste senden, wird die aktuelle Position um den angegebenen Inkrement fortgesetzt. Standardmäßig ist der Schrittschritt auf 10 festgelegt.

Standardmäßige Statusleisten-Nachrichtenverarbeitung

In diesem Abschnitt werden die Nachrichten beschrieben, die von der Fensterprozedur für die PROGRESS_CLASS-Klasse verarbeitet werden.

Nachricht Durchgeführte Verarbeitung
WM_CREATE Ordnet eine anfängliche Struktur zu und initialisiert sie.
WM_DESTROY Gibt alle Ressourcen frei, die der Statusleiste zugeordnet sind.
WM_ERASEBKGND Zeichnet den Hintergrund und die Rahmen der Fortschrittsleiste.
WM_GETFONT Gibt das Handle auf die aktuelle Schriftart zurück. Die Statusanzeige zeichnet derzeit keinen Text, sodass das Senden dieser Nachricht keine Auswirkungen auf das Steuerelement hat.
WM_PAINT Zeichnet die Statusanzeige. Wenn der wParam-Parameter nicht NULL ist, geht das Steuerelement davon aus, dass der Wert ein HDC ist, und zeichnet mit diesem Gerätekontext.
WM_SETFONT Speichert das Handle in der neuen Schriftart und gibt das Handle an die vorherige Schriftart zurück. Die Statusanzeige zeichnet derzeit keinen Text, sodass das Senden dieser Nachricht keine Auswirkungen auf das Steuerelement hat.

 

Marquee-Stil

Wenn Sie das Statusleistensteuerelement mit der PBS_MARQUEE-Formatvorlage erstellen, können Sie es auf eine Weise animieren, die Aktivität anzeigt, aber nicht angibt, welcher Anteil der Aufgabe abgeschlossen ist. Der hervorgehobene Teil des Fortschrittsbalkens bewegt sich wiederholt entlang der Länge des Balkens. Sie können die Animation starten und beenden und die Geschwindigkeit steuern, indem Sie die PBM_SETMARQUEE Nachricht senden. Der Fortschrittsbalken des Marquee-Balkens verfügt weder über einen Bereich noch über eine Position.

Die folgende Abbildung zeigt eine Statusleiste im Marquee-Modus. Der hervorgehobene Teil bewegt sich über den Balken.

Screenshot einer Statusleiste, die eine grüne Hervorhebung über ein graues Rechteck verschiebt, um den Fortschritt anzuzeigen