Share via


Informationen zu Bildlaufleisten

Ein Fenster kann ein Datenobjekt anzeigen, z. B. ein Dokument oder eine Bitmap, das größer als der Clientbereich des Fensters ist. Wenn eine Bildlaufleiste bereitgestellt wird, kann der Benutzer ein Datenobjekt im Clientbereich scrollen, um die Teile des Objekts anzuzeigen, die sich über die Fenstergrenzen hinaus erstrecken.

Bildlaufleisten sollten in jedem Fenster enthalten sein, für das der Inhalt des Clientbereichs über die Fenstergrenzen hinausgeht. Die Ausrichtung einer Bildlaufleiste bestimmt die Richtung, in der der Bildlauf erfolgt, wenn der Benutzer die Bildlaufleiste betreibt. Eine horizontale Bildlaufleiste ermöglicht es dem Benutzer, den Inhalt eines Fensters nach links oder rechts zu scrollen. Mit einer vertikalen Bildlaufleiste kann der Benutzer den Inhalt nach oben oder unten scrollen.

Die folgenden Themen werden in diesem Abschnitt behandelt.

Teile einer Bildlaufleiste

Eine Bildlaufleiste besteht aus einer schattierten Welle mit einer Pfeilschaltfläche an jedem Ende und einem Bildlauffeld (manchmal auch als Daumen bezeichnet) zwischen den Pfeilschaltflächen. Eine Bildlaufleiste stellt die Gesamtlänge oder Breite eines Datenobjekts im Clientbereich eines Fensters dar. das Bildlauffeld stellt den Teil des Objekts dar, der im Clientbereich sichtbar ist. Die Position des Bildlauffelds ändert sich, wenn der Benutzer einen Bildlauf für ein Datenobjekt durchführt, um einen anderen Teil davon anzuzeigen. Das System passt auch die Größe des Bildlauffelds einer Bildlaufleiste an, sodass angegeben wird, welcher Teil des gesamten Datenobjekts derzeit im Fenster sichtbar ist. Wenn der größte Teil des Objekts sichtbar ist, nimmt das Bildlauffeld den größten Teil der Scrollleistenwelle ein. Wenn nur ein kleiner Teil des Objekts sichtbar ist, nimmt das Bildlauffeld einen kleinen Teil der Schiebeleistenwelle ein.

Der Benutzer scrollt den Inhalt eines Fensters, indem er auf eine der Pfeilschaltflächen klickt, indem er auf den Bereich in der schattierten Bildlaufleistenwelle klickt oder das Bildlauffeld zieht. Wenn der Benutzer auf eine Pfeilschaltfläche klickt, scrollt die Anwendung den Inhalt um eine Einheit (in der Regel eine einzelne Zeile oder Spalte). Wenn der Benutzer auf die schattierten Bereiche klickt, scrollt die Anwendung durch den Inhalt um ein Fenster. Der Umfang des Bildlaufs, der beim Ziehen des Bildlauffelds durch den Benutzer auftritt, hängt vom Abstand ab, den der Benutzer im Bildlauffeld zieht, und vom Bildlaufbereich der Bildlaufleiste. Weitere Informationen zum Bildlaufbereich finden Sie unter Position des Bildlauffelds und Bildlaufbereich.

Der folgende Screenshot zeigt ein umfangreiches Bearbeitungssteuerelement mit vertikalen und horizontalen Bildlaufleisten, wie sie möglicherweise in Windows Vista angezeigt werden. Die vertikale Bildlaufleiste ist derzeit "heiß", da der Mauszeiger beim Erstellen des Screenshots mit dem Mauszeiger darauf zeigte.

Screenshot eines umfangreichen Bearbeitungssteuerelements mit Bildlaufleisten

Standard-Bildlaufleisten und Bildlaufleistensteuerelemente

Eine Bildlaufleiste ist in einem Fenster entweder als Standard-Bildlaufleiste oder als Bildlaufleisten-Steuerelement enthalten. Eine Standard-Bildlaufleiste befindet sich im Nichtclientbereich eines Fensters. Es wird mit dem Fenster erstellt und angezeigt, wenn das Fenster angezeigt wird. Der einzige Zweck einer Standard-Bildlaufleiste besteht darin, dem Benutzer zu ermöglichen, Scrollanforderungen zum Anzeigen des gesamten Inhalts des Clientbereichs zu generieren. Sie können eine Standardmäßige Bildlaufleiste in ein Fenster einschließen, indem Sie beim Erstellen des Fensters WS_HSCROLL, WS_VSCROLL oder beide Formatvorlagen angeben. Die WS_HSCROLL Formatvorlage erstellt eine horizontale Bildlaufleiste, die am unteren Rand des Clientbereichs positioniert ist. Die WS_VSCROLL Formatvorlage erstellt eine vertikale Bildlaufleiste, die rechts neben dem Clientbereich positioniert ist. Die SM_CXHSCROLL- und SM_CYHSCROLL Systemmetrikwerte definieren die Breite und Höhe einer horizontalen Standardlaufleiste. Die werte SM_CXVSCROLL und SM_CYVSCROLL definieren die Breite und Höhe einer standardmäßigen vertikalen Bildlaufleiste. Eine Standard-Bildlaufleiste ist Teil des zugeordneten Fensters und verfügt daher nicht über ein eigenes Fensterhandle.

Ein Bildlaufleisten-Steuerelement ist ein Steuerelementfenster, das zur SCROLLBAR-Fensterklasse gehört. Ein Bildlaufleisten-Steuerelement wird angezeigt und funktioniert wie eine Standard-Bildlaufleiste, aber es handelt sich um ein separates Fenster. Als separates Fenster hat ein Bildlaufleisten-Steuerelement den direkten Eingabefokus. Im Gegensatz zu einer Standard-Bildlaufleiste verfügt ein Bildlaufleisten-Steuerelement auch über eine integrierte Tastaturschnittstelle.

Sie können beliebig viele Bildlaufleistensteuerelemente in einem einzelnen Fenster verwenden. Wenn Sie ein Bildlaufleisten-Steuerelement erstellen, müssen Sie die Größe und Position der Bildlaufleiste angeben. Wenn die Größe des Fensters eines Bildlaufleisten-Steuerelements jedoch geändert werden kann, müssen Anpassungen an der Größe der Bildlaufleiste vorgenommen werden, wenn sich die Größe des Fensters ändert.

Der Vorteil der Verwendung einer Standard-Bildlaufleiste besteht darin, dass das System die Bildlaufleiste erstellt und die Größe und Position automatisch festlegt. Standard-Bildlaufleisten sind jedoch manchmal zu restriktiv. Angenommen, Sie möchten einen Clientbereich in Quadranten unterteilen und einen separaten Satz von Bildlaufleisten verwenden, um den Inhalt der einzelnen Quadranten zu steuern. Sie können keine Standard-Bildlaufleisten verwenden, da Sie nur einen Satz von Bildlaufleisten für ein bestimmtes Fenster erstellen können. Verwenden Sie stattdessen Bildlaufleistensteuerelemente, da Sie einem Fenster beliebig viele davon hinzufügen können.

Anwendungen können Bildlaufleistensteuerelemente für andere Zwecke als das Scrollen des Inhalts eines Fensters bereitstellen. Beispielsweise kann eine Bildschirmschoneranwendung eine Bildlaufleiste bereitstellen, mit der die Geschwindigkeit festgelegt wird, mit der Grafiken auf dem Bildschirm verschoben werden.

Ein Bildlaufleisten-Steuerelement kann über eine Reihe von Formatvorlagen verfügen, die dazu dienen, die Ausrichtung und Position der Bildlaufleiste zu steuern. Sie geben die gewünschten Formatvorlagen an, wenn Sie die CreateWindowEx-Funktion aufrufen, um ein Bildlaufleistensteuerelement zu erstellen. Einige der Stile erstellen ein Bildlaufleisten-Steuerelement, das eine Standardbreite oder -höhe verwendet. Sie müssen jedoch immer die x- und y-Koordinaten und die anderen Dimensionen der Bildlaufleiste angeben.

Eine Tabelle mit Steuerelementformatvorlagen für Bildlaufleisten finden Sie unter Bildlaufleisten-Steuerelementstile.

Hinweis

Um visuelle Stile mit Bildlaufleisten zu verwenden, muss eine Anwendung ein Manifest enthalten und Am Anfang des Programms InitCommonControls aufrufen. Informationen zu visuellen Stilen finden Sie unter Visuelle Stile. Informationen zu Manifesten finden Sie unter Aktivieren von visuellen Formatvorlagen.

 

Position des Bildlauffelds und Bildlaufbereich

Die Position des Bildlauffelds wird als ganze Zahl dargestellt. Sie ist relativ zum linken oder oberen Ende der Bildlaufleiste, je nachdem, ob die Bildlaufleiste horizontal oder vertikal ist. Die Position muss innerhalb der minimalen und maximalen Werte des Bildlaufbereichs liegen. Beispielsweise befindet sich in einer Bildlaufleiste mit einem Bereich von 0 bis 100 Position 50 in der Mitte, wobei die verbleibenden Positionen gleichmäßig entlang der Bildlaufleiste verteilt sind. Der anfängliche Bereich hängt von der Bildlaufleiste ab. Standard-Bildlaufleisten haben einen Anfangsbereich von 0 bis 100; Scrollleistensteuerelemente verfügen über einen leeren Bereich (sowohl der minimale als auch der maximale Wert sind Null), es sei denn, Sie geben beim Erstellen des Steuerelements einen expliziten Bereich an. Sie können den Bereich jederzeit ändern. Sie können die SetScrollInfo-Funktion verwenden, um die Bereichswerte festzulegen, und die GetScrollInfo-Funktion , um die aktuellen Bereichswerte abzurufen.

Eine Anwendung passt den Bildlaufbereich in der Regel an praktische ganze Zahlen an, sodass die Position des Bildlauffelds einfach in einen Wert übersetzt werden kann, der dem zu scrollenden Datenobjekt entspricht. Wenn eine Anwendung beispielsweise 260 Zeilen einer Textdatei in einem Fenster anzeigen muss, das nur 16 Zeilen gleichzeitig anzeigen kann, kann der vertikale Bildlaufleistenbereich auf 1 bis 244 festgelegt werden. Wenn sich das Bildlauffeld an Position 1 befindet, befindet sich die erste Zeile oben im Fenster. Wenn sich das Bildlauffeld an Position 244 befindet, befindet sich die letzte Zeile (Zeile 260) am unteren Rand des Fensters. Wenn eine Anwendung versucht, einen Positionswert anzugeben, der kleiner als das Minimum oder mehr als das Maximum ist, wird stattdessen der minimale oder maximale Bildlaufbereichswert verwendet.

Sie können eine Seitengröße für eine Bildlaufleiste festlegen. Die Seitengröße stellt die Anzahl der Dateneinheiten dar, die angesichts der aktuellen Größe in den Clientbereich des Besitzerfensters passen können. Wenn der Clientbereich beispielsweise 16 Textzeilen enthalten kann, würde eine Anwendung die Seitengröße auf 16 festlegen. Das System verwendet die Seitengröße zusammen mit dem Bildlaufbereich und der Länge der Scrollleistenwelle, um die Größe des Bildlauffelds festzulegen. Wenn die Größe eines Fensters mit einer Bildlaufleiste geändert wird, sollte eine Anwendung die SetScrollInfo-Funktion aufrufen, um die Seitengröße festzulegen. Eine Anwendung kann die aktuelle Seitengröße abrufen, indem sie die sendende GetScrollInfo-Funktion aufruft.

Um eine nützliche Beziehung zwischen dem Bildlaufleistenbereich und dem Datenobjekt herzustellen, muss eine Anwendung den Bereich anpassen, wenn sich die Größe des Datenobjekts ändert.

Wenn der Benutzer das Bildlauffeld in einer Bildlaufleiste verschiebt, meldet die Bildlaufleiste die Scrollfeldposition als ganze Zahl im Bildlaufbereich. Wenn die Position der Mindestwert ist, befindet sich das Bildlauffeld am oberen Rand einer vertikalen Bildlaufleiste oder am linken Ende einer horizontalen Bildlaufleiste. Wenn die Position der maximale Wert ist, befindet sich das Bildlauffeld am unteren Rand einer vertikalen Bildlaufleiste oder am rechten Ende einer horizontalen Bildlaufleiste.

Der maximale Wert, den eine Bildlaufleiste melden kann (d. h. die maximale Scrollposition), hängt von der Seitengröße ab. Wenn die Bildlaufleiste eine Seitengröße größer als eins hat, ist die maximale Bildlaufposition kleiner als der maximale Bereichswert. Sie können die folgende Formel verwenden, um die maximale Bildlaufposition zu berechnen:

MaxScrollPos = MaxRangeValue - (PageSize - 1) 

Eine Anwendung muss das Bildlauffeld in einer Bildlaufleiste verschieben. Obwohl der Benutzer eine Anforderung zum Scrollen in einer Bildlaufleiste stellt, aktualisiert die Bildlaufleiste nicht automatisch die Position des Bildlauffelds. Stattdessen wird die Anforderung an das übergeordnete Fenster übergeben, das einen Bildlauf in den Daten ausführen und die Position des Bildlauffelds aktualisieren muss. Eine Anwendung verwendet die SetScrollInfo-Funktion , um die Position des Bildlauffelds zu aktualisieren. Andernfalls wird die SetScrollPos-Funktion verwendet. Da die Verschiebung des Bildlauffelds gesteuert wird, kann die Anwendung das Bildlauffeld in Schritten verschieben, die für die Daten, die gescrollt werden, am besten geeignet sind.

Sichtbarkeit der Bildlaufleiste

Das System blendet eine Standardlaufleiste aus und deaktiviert sie, wenn die gleichen Minimal- und Höchstwerte angegeben sind. Das System blendet auch eine Standard-Bildlaufleiste aus und deaktiviert sie, wenn Sie eine Seitengröße angeben, die den gesamten Bildlaufbereich der Bildlaufleiste enthält. Auf diese Weise können Sie eine Bildlaufleiste vorübergehend ausblenden, wenn sie für den Inhalt des Clientbereichs nicht benötigt wird. Es ist nicht erforderlich, Bildlaufanforderungen über die Bildlaufleiste zu stellen, wenn sie ausgeblendet ist. Das System aktiviert die Bildlaufleiste und zeigt sie erneut an, wenn Sie die minimalen und maximalen Werte auf ungleiche Werte festlegen und wenn die Seitengröße nicht den gesamten Bildlaufbereich umfasst. Die ShowScrollBar-Funktion kann auch verwendet werden, um eine Bildlaufleiste auszublenden oder anzuzeigen. Dies wirkt sich nicht auf den Bereich, die Seitengröße oder die Position des Bildlauffelds aus.

Die Funktion EnableScrollBar kann verwendet werden, um einen oder beide Pfeile einer Bildlaufleiste zu deaktivieren. Eine Anwendung zeigt deaktivierte Pfeile in Grau an und reagiert nicht auf Benutzereingaben.

Scrollleistenanforderungen

Der Benutzer stellt Bildlaufanforderungen, indem er auf verschiedene Teile einer Bildlaufleiste klickt. Das System sendet die Anforderung in Form einer WM_HSCROLL- oder WM_VSCROLL-Nachricht an das angegebene Fenster. Eine horizontale Bildlaufleiste sendet die WM_HSCROLL Nachricht; eine vertikale Bildlaufleiste sendet die WM_VSCROLL Nachricht. Jede Nachricht enthält einen Anforderungscode, der der Aktion des Benutzers, dem Handle zur Bildlaufleiste (nur Steuerelemente der Bildlaufleiste) und in einigen Fällen der Position des Bildlauffelds entspricht.

Das folgende Diagramm zeigt den Anforderungscode, den der Benutzer generiert, wenn er auf verschiedene Teile einer Bildlaufleiste klickt.

Diagramm mit den Anforderungscodes, die den einzelnen Regionen auf zwei Bildlaufleisten zugeordnet sind

Die SB_ Werte geben die Aktion an, die der Benutzer ausführt. Eine Anwendung untersucht die Codes, die die WM_HSCROLL und WM_VSCROLL Meldungen begleiten, und führt dann den entsprechenden Bildlaufvorgang aus. In der folgenden Tabelle wird die Aktion des Benutzers für jeden Wert angegeben, gefolgt von der Antwort der Anwendung. In jedem Fall wird eine Einheit von der Anwendung entsprechend den Daten definiert. Die typische Einheit zum vertikalen Scrollen von Text ist beispielsweise eine Textzeile.

Anforderung Aktion Antwort
SB_LINEUP Der Benutzer klickt auf den oberen Bildlaufpfeil. Verringert die Position des Bildlauffelds; scrollt um eine Einheit an den Anfang der Daten.
SB_LINEDOWN Der Benutzer klickt auf den unteren Bildlaufpfeil. Erhöht die Position des Bildlauffelds; scrollt um eine Einheit zum Ende der Daten.
SB_LINELEFT Der Benutzer klickt auf den pfeillinken Bildlauf. Verringert die Position des Bildlauffelds; scrollt um eine Einheit an das linke Ende der Daten.
SB_LINERIGHT Der Benutzer klickt auf den Pfeil nach rechts. Erhöht die Position des Bildlauffelds; scrollt um eine Einheit an das rechte Ende der Daten.
SB_PAGEUP Der Benutzer klickt auf die Scrollleistenwelle oberhalb des Bildlauffelds. Verringert die Position des Bildlauffelds um die Anzahl der Dateneinheiten im Fenster. scrollt mit der gleichen Anzahl von Einheiten an den Anfang der Daten.
SB_PAGEDOWN Der Benutzer klickt auf die Scrollleistenwelle unterhalb des Bildlauffelds. Erhöht die Position des Bildlauffelds um die Anzahl der Dateneinheiten im Fenster. scrollt mit der gleichen Anzahl von Einheiten nach unten in den Daten.
SB_PAGELEFT Der Benutzer klickt auf die Scrollleistenwelle links neben dem Bildlauffeld. Verringert die Position des Bildlauffelds um die Anzahl der Dateneinheiten im Fenster. scrollt mit derselben Anzahl von Einheiten zum linken Ende der Daten.
SB_PAGERIGHT Der Benutzer klickt auf die Scrollleistenwelle rechts neben dem Bildlauffeld. Erhöht die Position des Bildlauffelds um die Anzahl der Dateneinheiten im Fenster. scrollt mit derselben Anzahl von Einheiten an das rechte Ende der Daten.
SB_THUMBPOSITION Der Benutzer gibt das Bildlauffeld nach dem Ziehen frei. Legt das Bildlauffeld auf die in der Nachricht angegebene Position fest. scrollt die Daten um die gleiche Anzahl von Einheiten, die das Bildlauffeld verschoben hat.
SB_THUMBTRACK Der Benutzer zieht das Bildlauffeld. Legt das Bildlauffeld auf die in der Nachricht angegebene Position fest und scrollt die Daten um die gleiche Anzahl von Einheiten, die das Bildlauffeld für Anwendungen verschoben hat, die Daten schnell zeichnen. Anwendungen, die daten nicht schnell zeichnen können, müssen auf den SB_THUMBPOSITION Anforderungscode warten, bevor sie das Bildlauffeld verschieben und die Daten scrollen.
SB_ENDSCROLL Der Benutzer lässt die Maus los, nachdem er sie auf einem Pfeil oder in der Scrollleistenwelle gehalten hat. Es ist keine Antwort erforderlich.

 

Eine Bildlaufleiste generiert SB_THUMBPOSITION und SB_THUMBTRACK Anforderungscode, wenn der Benutzer auf das Bildlauffeld klickt und zieht. Eine Anwendung sollte so programmiert werden, dass sie entweder den SB_THUMBTRACK oder SB_THUMBPOSITION Anforderungscode verarbeitet.

Der SB_THUMBPOSITION Anforderungscode tritt auf, wenn der Benutzer nach dem Klicken auf das Bildlauffeld die Maustaste loslässt. Eine Anwendung, die diese Nachricht verarbeitet, führt den Bildlaufvorgang aus, nachdem der Benutzer das Bildlauffeld an die gewünschte Position gezogen und die Maustaste losgelassen hat.

Der SB_THUMBTRACK Anforderungscode tritt auf, wenn der Benutzer das Bildlauffeld zieht. Wenn eine Anwendung SB_THUMBTRACK Anforderungscodes verarbeitet, kann sie den Inhalt eines Fensters scrollen, während der Benutzer das Bildlauffeld zieht. Eine Bildlaufleiste kann jedoch in kurzer Zeit viele SB_THUMBTRACK Anforderungscode generieren, sodass eine Anwendung diese Anforderungscodes nur verarbeiten sollte, wenn sie den Inhalt des Fensters schnell neu streichen kann.

Tastaturschnittstelle für eine Bildlaufleiste

Ein Bildlaufleisten-Steuerelement bietet eine integrierte Tastaturschnittstelle, mit der benutzer Bildlaufanforderungen über die Tastatur ausgeben können. eine Standard-Bildlaufleiste nicht. Wenn ein Bildlaufleisten-Steuerelement über den Tastaturfokus verfügt, sendet es WM_HSCROLL und WM_VSCROLL Nachrichten an das übergeordnete Fenster, wenn der Benutzer die Pfeiltasten drückt. Der Anforderungscode wird mit jeder Nachricht gesendet, die der Pfeiltaste entspricht, die der Benutzer gedrückt hat. Im Folgenden finden Sie die Pfeiltasten und die entsprechenden Anforderungscodes.

Pfeiltaste Erfolgscode
DOWN SB_LINEDOWN oder SB_LINERIGHT
ENDE SB_BOTTOM
POS1 SB_TOP
LEFT SB_LINEUP oder SB_LINELEFT
PGDN SB_PAGEDOWN oder SB_PAGERIGHT
PGUP SB_PAGEUP oder SB_PAGELEFT
RIGHT SB_LINEDOWN oder SB_LINERIGHT
UP SB_LINEUP oder SB_LINELEFT

 

 

Hinweis

Die Tastaturschnittstelle eines Bildlaufleistensteuerelements sendet die SB_TOP und SB_BOTTOM Anforderungscodes. Der SB_TOP Anforderungscode gibt an, dass der Benutzer den obersten Wert des Bildlaufbereichs erreicht hat. Eine Anwendung scrollt den Fensterinhalt nach unten, sodass der obere Bereich des Datenobjekts sichtbar ist. Der SB_BOTTOM Anforderungscode gibt an, dass der Benutzer den unteren Wert des Bildlaufbereichs erreicht hat. Wenn eine Anwendung den SB_BOTTOM Anforderungscode verarbeitet, scrollt sie den Fensterinhalt nach oben, sodass der untere Bereich des Datenobjekts sichtbar ist.

 

Wenn Sie eine Tastaturschnittstelle für eine Standard-Bildlaufleiste benötigen, können Sie selbst eine erstellen, indem Sie die WM_KEYDOWN Nachricht in Ihrer Fensterprozedur verarbeiten und dann die entsprechende Bildlaufaktion basierend auf dem virtuellen Schlüsselcode ausführen, der die Nachricht begleitet. Informationen zum Erstellen einer Tastaturschnittstelle für eine Bildlaufleiste finden Sie unter Erstellen einer Tastaturschnittstelle für eine Standardlaufleiste.

Scrollen im Clientbereich

Die einfachste Möglichkeit, den Inhalt eines Clientbereichs zu scrollen, besteht darin, ihn zu löschen und dann neu zu zeichnen. Dies ist die Methode, die eine Anwendung wahrscheinlich mit SB_PAGEUP, SB_PAGEDOWN und SB_TOP Anforderungscodes verwendet, die in der Regel völlig neue Inhalte erfordern.

Bei einigen Anforderungscodes, z. B. SB_LINEUP und SB_LINEDOWN, muss nicht der gesamte Inhalt gelöscht werden, da einige nach dem Scrollen sichtbar bleiben. Die ScrollWindowEx-Funktion behält einen Teil des Inhalts des Clientbereichs bei, verschiebt den beibehaltenen Teil um einen angegebenen Betrag und bereitet dann den Rest des Clientbereichs für das Zeichnen neuer Informationen vor. ScrollWindowEx verwendet die BitBlt-Funktion , um einen bestimmten Teil des Datenobjekts an einen neuen Speicherort im Clientbereich zu verschieben. Jeder unbedeckte Teil des Clientbereichs (alles, was nicht beibehalten wurde) wird ungültig, gelöscht und gezeichnet, wenn die nächste WM_PAINT Nachricht auftritt.

Die ScrollWindowEx-Funktion kann verwendet werden, um einen Teil des Clientbereichs aus dem Bildlaufvorgang auszuschließen. Dadurch wird verhindert, dass Sich Elemente mit festen Positionen, z. B. untergeordnete Fenster, innerhalb des Clientbereichs bewegen. Dadurch wird der Teil des Clientbereichs, der die neuen Informationen empfangen soll, automatisch ungültig, sodass die Anwendung keine eigenen Abschneidebereiche berechnen muss. Weitere Informationen zum Abschneiden finden Sie unter Clipping.

Normalerweise scrollt eine Anwendung den Inhalt eines Fensters in die Richtung, die durch die Bildlaufleiste angegeben wird. Wenn der Benutzer beispielsweise im Bereich unterhalb des Bildlauffelds auf die Wellen der Bildlaufleiste klickt, scrollt eine Anwendung das Objekt im Fenster nach oben, um einen Teil des Objekts anzuzeigen, der sich unterhalb des sichtbaren Teils befindet.

Sie können auch mit der ScrollDC-Funktion einen rechteckigen Bereich scrollen.

Farben und Metriken der Bildlaufleiste

Der systemdefinierte Farbwert COLOR_SCROLLBAR steuert die Farbe innerhalb einer Scrollleistenwelle. Verwenden Sie die GetSysColor-Funktion , um die Farbe der Scrollleistenwelle und die SetSysColors-Funktion zu bestimmen, um die Farbe der Scrollleistenwelle festzulegen. Beachten Sie jedoch, dass sich diese Farbänderung auf alle Bildlaufleisten im System auswirkt.

Sie können die Dimensionen der Bitmaps abrufen, die das System in Standardlaufleisten verwendet, indem Sie die GetSystemMetrics-Funktion aufrufen. Im Folgenden sind die Systemmetrikwerte aufgeführt, die Bildlaufleisten zugeordnet sind.

Systemmetrik BESCHREIBUNG
SM_CXHSCROLL Breite der Pfeil-Bitmap auf horizontaler Bildlaufleiste
SM_CXHTHUMB Breite des Bildlauffelds auf horizontaler Scrollleiste. Dieser Wert ruft die Breite einer Bildlaufleiste ab, die eine Seitengröße von 0 hat.
SM_CXVSCROLL Breite der Pfeil-Bitmap auf der vertikalen Bildlaufleiste
SM_CYHSCROLL Höhe der Pfeilbitbitte auf horizontaler Bildlaufleiste
SM_CYVSCROLL Höhe der Pfeil-Bitmap auf der vertikalen Bildlaufleiste
SM_CYVTHUMB Höhe des Bildlauffelds auf der vertikalen Scrollleiste. Dieser Wert ruft die Höhe einer Bildlaufleiste ab, die eine Seitengröße von 0 hat.