Flache Bildlaufleisten
Microsoft Internet Explorer 4.0 hat eine neue visuelle Technologie eingeführt, die als flache Bildlaufleisten bezeichnet wird. Funktionell verhalten sich flache Bildlaufleisten genauso wie Standard-Bildlaufleisten. Der Unterschied besteht darin, dass Sie ihre Darstellung in größerem Maße anpassen können als standardmäßige Bildlaufleisten.
Die folgende Abbildung zeigt ein Fenster, das eine flache Bildlaufleiste enthält.
Anmerkung
Flache Bildlaufleisten werden von Comctl32.dll Versionen 4.71 bis 5.82 unterstützt. Comctl32.dll Versionen 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.
Bevor Sie beginnen
Um die Funktionen der flachen Bildlaufleiste zu verwenden, müssen Sie "Commctrl.h" in Ihre Quelldateien einschließen und mit Comctl32.lib verknüpfen.
Hinzufügen von flachen Bildlaufleisten zu einem Fenster
Um einem Fenster flache Bildlaufleisten hinzuzufügen, rufen Sie InitializeFlatSBauf, und übergeben Sie das Handle an das Fenster. Anstatt die standardmäßigen Bildlaufleistenfunktionen zum Bearbeiten der Bildlaufleisten zu verwenden, müssen Sie die entsprechende FlatSB_XXX-Funktion verwenden. Es gibt flache Bildlaufleistenfunktionen 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 flache Bildlaufleisten auf die entsprechenden Standardfunktionen zurückgestellt, falls vorhanden. Auf diese Weise können Sie flache Bildlaufleisten aktivieren und deaktivieren, ohne bedingten Code schreiben zu müssen.
Da eine Anwendung möglicherweise benutzerdefinierte Metriken für die flachen Bildlaufleisten festgelegt hat, werden sie nicht automatisch aktualisiert, wenn sich die Systemmetriken ändern. Wenn sich die Metriken der System-Bildlaufleiste ändern, wird eine WM_SETTINGCHANGE Nachricht übertragen, wobei die wParam- auf SPI_SETNONCLIENTMETRICSfestgelegt ist. Um flache Bildlaufleisten auf die neuen Systemmetriken zu aktualisieren, müssen Anwendungen diese Meldung behandeln und die metrisch abhä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 von flachen Bildlaufleisten
mit FlatSB_SetScrollProp können Sie die flachen Bildlaufleisten ändern, um das Aussehen des Fensters anzupassen. Bei vertikalen Bildlaufleisten können Sie die Breite der Leiste und die Höhe der Richtungspfeile ändern. Bei horizontalen Bildlaufleisten können Sie die Höhe der Leiste 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. Durch Ändern der eigenschaften WSB_PROP_VSTYLE und WSB_PROP_HSTYLE können Sie den Typ der bildlaufleiste festlegen, die Sie verwenden möchten. Es stehen drei Formatvorlagen zur Verfügung.
Stil | Beschreibung |
---|---|
FSB_ENCARTA_MODE | Es wird eine standardmäßige flache Bildlaufleiste angezeigt. Wenn die Maus über eine Richtungsschaltfläche oder den Daumen bewegt wird, wird dieser Teil der Bildlaufleiste in 3D angezeigt. |
FSB_FLAT_MODE | Es wird eine standardmäßige flache Bildlaufleiste 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 überblasene Bildlaufleiste wird angezeigt. Es werden keine speziellen visuellen Effekte angewendet. |
Entfernen von flachen Bildlaufleisten
Wenn Sie flache Bildlaufleisten aus dem Fenster entfernen möchten, rufen Sie die UninitializeFlatSB--Funktion auf, und übergeben Sie den Ziehpunkt an das Fenster. Mit dieser Funktion werden nur flache Bildlaufleisten zur Laufzeit aus dem Fenster entfernt. Sie müssen diese Funktion nicht aufrufen, wenn Das Fenster zerstört wird.