Flache Bildlaufleisten

Microsoft Internet Explorer 4.0 hat eine neue visuelle Technologie eingeführt, die als flache Scrollleisten bezeichnet wird. Funktionell verhalten sich flache Bildlaufleisten genau wie Standard-Bildlaufleisten. Der Unterschied besteht darin, dass Sie deren Darstellung stärker anpassen können als standard-Bildlaufleisten.

Die folgende Abbildung zeigt ein Fenster, das eine flache Bildlaufleiste enthält.

Screenshot eines Fensters mit einer flachen Bildlaufleiste

Hinweis

Flache Bildlaufleisten werden von Comctl32.dll Versionen 4.71 bis 5.82 unterstützt. Comctl32.dll Version 6.00 und höher unterstützen keine flachen Bildlaufleisten.

 

Verwenden von flachen Bildlaufleisten

In diesem Abschnitt wird beschrieben, wie Sie flache Bildlaufleisten in Ihrer Anwendung implementieren.

Vorbereitungen

Um die Funktionen der flachen Bildlaufleiste verwenden zu können, müssen Sie Commctrl.h in Ihre Quelldateien einschließen und mit Comctl32.lib verknüpfen.

Hinzufügen flacher Bildlaufleisten zu einem Fenster

Um einem Fenster flache Bildlaufleisten hinzuzufügen, rufen Sie InitializeFlatSB auf, und übergeben Sie das Handle an das Fenster. Anstatt die Standardmäßigen Bildlaufleistenfunktionen zum Bearbeiten ihrer Bildlaufleisten zu verwenden, müssen Sie die entsprechende FlatSB_XXX-Funktion verwenden. Es gibt flache Scrollleistenfunktionen zum Festlegen und Abrufen der Bildlaufinformationen, des Bereichs und der Position. Wenn flache Bildlaufleisten für Ihr Fenster nicht initialisiert wurden, wird die API für die flache Bildlaufleiste auf die entsprechenden Standardfunktionen zurückversetzt, sofern diese verwendet werden. Dadurch können Sie flache Bildlaufleisten ein- und ausschalten, ohne bedingte Code schreiben zu müssen.

Da eine Anwendung möglicherweise benutzerdefinierte Metriken für ihre flachen Bildlaufleisten festgelegt hat, werden sie nicht automatisch aktualisiert, wenn sich Systemmetriken ändern. Wenn sich die Metriken der Systemlaufleiste ändern, wird eine WM_SETTINGCHANGE Nachricht übertragen, wobei wParam auf SPI_SETNONCLIENTMETRICS festgelegt ist. Um flache Bildlaufleisten auf die neuen Systemmetriken zu aktualisieren, müssen Anwendungen diese Meldung verarbeiten und die metrikabhängigen Eigenschaften der flachen Bildlaufleiste explizit ändern.

Verwenden Sie FlatSB_SetScrollProp, um die Eigenschaften der Bildlaufleiste zu aktualisieren. Das folgende Codefragment ändert die metrikabhängigen Eigenschaften einer flachen Bildlaufleiste in die aktuellen Systemwerte.

void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}

Verbessern flacher Bildlaufleisten

FlatSB_SetScrollProp können Sie die flachen Bildlaufleisten ändern, um das Erscheinungsbild Ihres Fensters anzupassen. Bei vertikalen Bildlaufleisten können Sie die Breite des Balkens und die Höhe der Richtungspfeile ändern. Bei horizontalen Bildlaufleisten können Sie die Höhe des Balkens und die Breite der Richtungspfeile ändern. Sie können auch die Hintergrundfarbe der horizontalen und vertikalen Bildlaufleisten ändern.

FlatSB_SetScrollProp können Sie auch anpassen, wie die flachen Bildlaufleisten angezeigt werden. Indem Sie die Eigenschaften WSB_PROP_VSTYLE und WSB_PROP_HSTYLE ändern, können Sie den Typ der Bildlaufleiste festlegen, die Sie verwenden möchten. Drei Stile sind verfügbar.

Style BESCHREIBUNG
FSB_ENCARTA_MODE Eine standardmäßige flache Bildlaufleiste wird angezeigt. Wenn die Maus über eine Richtungsschaltfläche oder den Daumen bewegt wird, wird dieser Teil der Bildlaufleiste in 3D angezeigt.
FSB_FLAT_MODE Eine standardmäßige flache Bildlaufleiste wird angezeigt. Wenn die Maus über eine Richtungsschaltfläche oder den Daumen bewegt wird, wird dieser Teil der Bildlaufleiste in umgekehrten Farben angezeigt.
FSB_REGULAR_MODE Eine normale, nicht aufgeblasene Bildlaufleiste wird angezeigt. Es werden keine speziellen visuellen Effekte angewendet.

 

Entfernen flacher Bildlaufleisten

Wenn Sie flache Bildlaufleisten aus dem Fenster entfernen möchten, rufen Sie die Funktion UninitializeFlatSB auf, und übergeben Sie das Handle an das Fenster. Diese Funktion entfernt zur Laufzeit nur flache Bildlaufleisten aus dem Fenster. Sie müssen diese Funktion nicht aufrufen, wenn Ihr Fenster zerstört wird.