CScrollBar
-Klasse
Stellt die Funktionalität eines Windows-Bildlaufleisten-Steuerelements bereit.
Syntax
class CScrollBar : public CWnd
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CScrollBar::CScrollBar |
Erstellt ein CScrollBar -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CScrollBar::Create |
Erstellt die Windows-Bildlaufleiste und fügt sie an das CScrollBar Objekt an. |
CScrollBar::EnableScrollBar |
Aktiviert oder deaktiviert einen oder beide Pfeile auf einer Scrollleiste. |
CScrollBar::GetScrollBarInfo |
Ruft Informationen zur Bildlaufleiste mithilfe einer SCROLLBARINFO Struktur ab. |
CScrollBar::GetScrollInfo |
Ruft Informationen zur Bildlaufleiste ab. |
CScrollBar::GetScrollLimit |
Ruft den Grenzwert der Bildlaufleiste ab. |
CScrollBar::GetScrollPos |
Ruft die aktuelle Position eines Scrollfelds ab. |
CScrollBar::GetScrollRange |
Ruft die aktuellen minimalen und maximalen Bildlaufleistenpositionen für die angegebene Bildlaufleiste ab. |
CScrollBar::SetScrollInfo |
Legt die Informationen über die Bildlaufleiste fest. |
CScrollBar::SetScrollPos |
Legt die aktuelle Position eines Bildlauffelds fest. |
CScrollBar::SetScrollRange |
Legt die minimalen und maximalen Positionswerte für die angegebene Scrollleiste fest. |
CScrollBar::ShowScrollBar |
Blendet eine Bildlaufleiste ein oder aus. |
Hinweise
Sie erstellen ein Bildlaufleisten-Steuerelement in zwei Schritten. Rufen Sie zuerst den Konstruktor CScrollBar
auf, um das CScrollBar
Objekt zu erstellen, und rufen Sie dann die Create
Memberfunktion auf, um das Windows-Bildlaufleisten-Steuerelement zu erstellen und es an das CScrollBar
Objekt anzufügen.
Wenn Sie ein CScrollBar
Objekt in einem Dialogfeld (über eine Dialogressource) erstellen, wird das CScrollBar
Automatisch zerstört, wenn der Benutzer das Dialogfeld schließt.
Wenn Sie ein CScrollBar
Objekt in einem Fenster erstellen, müssen Sie es möglicherweise auch zerstören.
Wenn Sie das CScrollBar
Objekt auf dem Stapel erstellen, wird es automatisch zerstört. Wenn Sie das CScrollBar
Objekt mithilfe der new
Funktion auf dem Heap erstellen, müssen Sie das Objekt aufrufen delete
, um es zu zerstören, wenn der Benutzer die Windows-Bildlaufleiste beendet.
Wenn Sie speicher CScrollBar
im Objekt zuordnen, überschreiben Sie den CScrollBar
Destruktor, um die Zuordnungen zu löschen.
Verwandte Informationen zur Verwendung CScrollBar
finden Sie unter "Steuerelemente".
Vererbungshierarchie
CScrollBar
Anforderungen
Header: afxwin.h
CScrollBar::Create
Erstellt die Windows-Bildlaufleiste und fügt sie an das CScrollBar
Objekt an.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameter
dwStyle
Gibt die Formatvorlage der Bildlaufleiste an. Wenden Sie eine beliebige Kombination aus Bildlaufleistenformatvorlagen auf die Bildlaufleiste an.
rect
Gibt die Größe und Position der Bildlaufleiste an. Kann entweder eine RECT
Struktur oder ein CRect
Objekt sein.
pParentWnd
Gibt das übergeordnete Fenster der Bildlaufleiste an, in der Regel ein CDialog
Objekt. Es darf nicht sein NULL
.
nID
Die Steuerelement-ID der Bildlaufleiste.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Sie erstellen ein CScrollBar
Objekt in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, der das CScrollBar
Objekt erstellt. Anschließend rufen Sie ihn auf Create
, wodurch die zugeordnete Windows-Bildlaufleiste erstellt und initialisiert wird, und fügt es an das CScrollBar
Objekt an.
Wenden Sie die folgenden Fensterformatvorlagen auf eine Bildlaufleiste an:
WS_CHILD
ImmerWS_VISIBLE
GewöhnlichWS_DISABLED
SeltenWS_GROUP
So gruppieren Sie Steuerelemente
Beispiel
// Example 1:
// Create a horizontal CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). The scroll bar is NOT visible until the
// call ShowScrollBar() is made. m_ScrollBarHorz is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarHorz.Create(SBS_HORZ | SBS_TOPALIGN | WS_CHILD,
CRect(5, 5, 100, 30), this, IDC_SCROLLBARCTRL));
m_ScrollBarHorz.ShowScrollBar();
// Example 2:
// Create a vertical CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). m_ScrollBarVert is of type CScrollBar
// class, and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarVert.Create(SBS_VERT | SBS_LEFTALIGN | WS_CHILD |
WS_VISIBLE,
CRect(5, 30, 30, 130), this, IDC_SCROLLBARCTRL));
CScrollBar::CScrollBar
Erstellt ein CScrollBar
-Objekt.
CScrollBar();
Hinweise
Rufen Sie nach dem Erstellen des Objekts die Create
Memberfunktion auf, um die Windows-Bildlaufleiste zu erstellen und zu initialisieren.
Beispiel
CScrollBar m_ScrollBarHorz;
CScrollBar::EnableScrollBar
Aktiviert oder deaktiviert einen oder beide Pfeile auf einer Scrollleiste.
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
Parameter
nArrowFlags
Gibt an, ob die Bildlaufpfeile aktiviert oder deaktiviert sind und welche Pfeile aktiviert oder deaktiviert sind. Dieser Parameter kann einen der folgenden -Werte aufweisen:
ESB_ENABLE_BOTH
Aktiviert beide Pfeile einer Bildlaufleiste.ESB_DISABLE_LTUP
Deaktiviert den linken Pfeil einer horizontalen Bildlaufleiste oder den Nach-oben-Pfeil einer vertikalen Bildlaufleiste.ESB_DISABLE_RTDN
Deaktiviert den Pfeil nach rechts einer horizontalen Bildlaufleiste oder den Abwärtspfeil einer vertikalen Bildlaufleiste.ESB_DISABLE_BOTH
Deaktiviert beide Pfeile einer Bildlaufleiste.
Rückgabewert
Nonzero, wenn die Pfeile wie angegeben aktiviert oder deaktiviert sind; andernfalls 0, was angibt, dass sich die Pfeile bereits im angeforderten Zustand befinden oder ein Fehler aufgetreten ist.
Beispiel
Ein Beispiel hierfür finden Sie unter CScrollBar::SetScrollRange
.
CScrollBar::GetScrollBarInfo
Ruft die Informationen ab, die von der SCROLLBARINFO
-Struktur über eine Scrollleiste verwaltet werden.
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
Parameter
pScrollInfo
Ein Zeiger auf die SCROLLBARINFO
Struktur.
Rückgabewert
Gibt TRUE
bei Erfolg bzw. FALSE
bei einem Fehler zurück.
Hinweise
Diese Memberfunktion emuliert die Funktionalität der SBM_SCROLLBARINFO
Nachricht, wie im Windows SDK beschrieben.
CScrollBar::GetScrollInfo
Ruft die Informationen ab, die von der SCROLLINFO
-Struktur über eine Scrollleiste verwaltet werden.
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parameter
lpScrollInfo
Ein Zeiger auf eine SCROLLINFO
Struktur. Weitere Informationen zu dieser Struktur finden Sie im Windows SDK.
nMask
Gibt die abzurufenden Bildlaufleistenparameter an. Typische Verwendung, SIF_ALL
gibt eine Kombination aus SIF_PAGE
, , SIF_POS
, , SIF_TRACKPOS
und SIF_RANGE
. Weitere Informationen zu den Werten finden Sie unter.See SCROLLINFO
for more information on the nMask
values.
Rückgabewert
Wenn die Nachricht Werte abgerufen hat, lautet TRUE
die Rückgabe . Andernfalls ist das Ergebnis FALSE
.
Hinweise
GetScrollInfo
ermöglicht Anwendungen die Verwendung von 32-Bit-Bildlaufpositionen.
Die SCROLLINFO
Struktur enthält Informationen zu einer Bildlaufleiste, einschließlich der minimalen und maximalen Bildlaufpositionen, der Seitengröße und der Position des Bildlauffelds (Ziehpunkt). SCROLLINFO
Weitere Informationen zum Ändern der Strukturstandardeinstellungen finden Sie im Thema "Struktur" im Windows SDK.
Die MFC Windows-Meldungshandler, die die Position der Bildlaufleiste angeben, CWnd::OnHScroll
und CWnd::OnVScroll
stellen nur 16 Bit Positionsdaten bereit. GetScrollInfo
und SetScrollInfo
stellen 32 Bits von Bildlaufleistenpositionsdaten bereit. Daher kann eine Anwendung während der Verarbeitung oder CWnd::OnHScroll
CWnd::OnVScroll
zum Abrufen von 32-Bit-Bildlaufleistenpositionsdaten aufrufenGetScrollInfo
.
Beispiel
Ein Beispiel hierfür finden Sie unter CWnd::OnHScroll
.
CScrollBar::GetScrollLimit
Ruft die maximale Bildlaufposition der Bildlaufleiste ab.
int GetScrollLimit();
Rückgabewert
Gibt die maximale Position einer Bildlaufleiste an, wenn dies erfolgreich ist. andernfalls 0.
Beispiel
Ein Beispiel hierfür finden Sie unter CWnd::OnHScroll
.
CScrollBar::GetScrollPos
Ruft die aktuelle Position eines Scrollfelds ab.
int GetScrollPos() const;
Rückgabewert
Gibt die aktuelle Position des Bildlauffelds an, wenn dies erfolgreich ist. andernfalls 0.
Hinweise
Die aktuelle Position ist ein relativer Wert, der vom aktuellen Bildlaufbereich abhängt. Wenn der Bildlaufbereich beispielsweise 100 bis 200 beträgt und sich das Bildlauffeld in der Mitte der Leiste befindet, beträgt die aktuelle Position 150.
Beispiel
Ein Beispiel hierfür finden Sie unter CWnd::OnHScroll
.
CScrollBar::GetScrollRange
Kopiert die aktuellen minimalen und maximalen Bildlaufleistenpositionen für die angegebene Bildlaufleiste an die von lpMinPos
und lpMaxPos
.
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parameter
lpMinPos
Verweist auf die ganzzahlige Variable, die die Mindestposition erhält.
lpMaxPos
Verweist auf die ganzzahlige Variable, die die maximale Position erhält.
Hinweise
Der Standardbereich für ein Bildlaufleisten-Steuerelement ist leer (beide Werte sind 0).
Beispiel
Ein Beispiel hierfür finden Sie unter CWnd::OnHScroll
.
CScrollBar::SetScrollInfo
Legt die Informationen fest, die die SCROLLINFO
Struktur über eine Bildlaufleiste verwaltet.
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parameter
lpScrollInfo
Ein Zeiger auf eine SCROLLINFO
Struktur.
bRedraw
Gibt an, ob die Bildlaufleiste neu gezeichnet werden soll, um die neuen Informationen widerzuspiegeln. Wenn bRedraw
ja TRUE
, wird die Bildlaufleiste neu gezeichnet. Wenn dies der Grund ist FALSE
, wird sie nicht neu gezeichnet. Die Bildlaufleiste wird standardmäßig neu gezeichnet.
Rückgabewert
Bei erfolgreicher Ausführung lautet TRUE
die Rückgabe . Andernfalls ist das Ergebnis FALSE
.
Hinweise
Sie müssen die für die SCROLLINFO
Strukturparameter erforderlichen Werte angeben, einschließlich der Flagwerte.
Die SCROLLINFO
Struktur enthält Informationen zu einer Bildlaufleiste, einschließlich der minimalen und maximalen Bildlaufpositionen, der Seitengröße und der Position des Bildlauffelds (Ziehpunkt). SCROLLINFO
Weitere Informationen zum Ändern der Strukturstandardeinstellungen finden Sie im Thema "Struktur" im Windows SDK.
Beispiel
// Set SCROLLINFO for the scroll bar. m_ScrollBarHorz is of type
// CScrollBar class, and it is a member variable in CMyDialog class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = 10;
info.nPage = 2;
info.nPos = 5;
info.nTrackPos = 2;
m_ScrollBarHorz.SetScrollInfo(&info);
CScrollBar::SetScrollPos
Legt die aktuelle Position eines Bildlauffelds auf das angegebene Feld fest nPos
und bezieht die Bildlaufleiste bei Angabe erneut, um die neue Position widerzuspiegeln.
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
Parameter
nPos
Gibt die neue Position für das Bildlauffeld an. Er muss sich innerhalb des Bildlaufbereichs befinden.
bRedraw
Gibt an, ob die Bildlaufleiste neu gezeichnet werden soll, um die neue Position widerzuspiegeln. Wenn bRedraw
ja TRUE
, wird die Bildlaufleiste neu gezeichnet. Wenn dies der Grund ist FALSE
, wird sie nicht neu gezeichnet. Die Bildlaufleiste wird standardmäßig neu gezeichnet.
Rückgabewert
Gibt die vorherige Position des Bildlauffelds an, wenn dies erfolgreich war; andernfalls 0.
Hinweise
Wird festgelegt bRedraw
, FALSE
wann immer die Bildlaufleiste von einem nachfolgenden Aufruf einer anderen Funktion neu gezeichnet wird, um zu vermeiden, dass die Bildlaufleiste zweimal innerhalb eines kurzen Intervalls neu gezeichnet wird.
Beispiel
Sehen Sie sich das Beispiel für CScrollBar::SetScrollRange an.
CScrollBar::SetScrollRange
Legt die minimalen und maximalen Positionswerte für die angegebene Scrollleiste fest.
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parameter
nMinPos
Gibt die minimale Bildlaufposition an.
nMaxPos
Gibt die maximale Bildlaufposition an.
bRedraw
Gibt an, ob die Bildlaufleiste neu gezeichnet werden soll, um die Änderung widerzuspiegeln. Wenn bRedraw
ja TRUE
, wird die Bildlaufleiste neu gezeichnet; wenn FALSE
, wird sie nicht neu gezeichnet. Es wird standardmäßig neu gezeichnet.
Hinweise
Legen Sie nMinPos
fest, und nMaxPos
auf 0, um standardmäßige Bildlaufleisten auszublenden.
Rufen Sie diese Funktion nicht auf, um eine Bildlaufleiste auszublenden, während Sie eine Bildlaufleistenbenachrichtigung verarbeiten.
Wenn ein Aufruf unmittelbar SetScrollRange
auf einen Aufruf der SetScrollPos
Memberfunktion folgt, legen Sie bRedraw
ihn SetScrollPos
auf 0 fest, um zu verhindern, dass die Bildlaufleiste zweimal neu gezeichnet wird.
Die Differenz zwischen den angegebenen nMinPos
Werten darf nMaxPos
nicht größer als 32.767 sein. Der Standardbereich für ein Bildlaufleisten-Steuerelement ist leer (beide nMinPos
und nMaxPos
0).
Beispiel
// Sets minimum (0) and maximum (10) position values for the
// CScrollBar control. m_ScrollBarVert is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
m_ScrollBarVert.SetScrollRange(0, 10);
// Set the position of the scroll box.
m_ScrollBarVert.SetScrollPos(5);
// Disable the down arrow of the scroll bar. By default, both arrows
// are enabled.
m_ScrollBarVert.EnableScrollBar(ESB_DISABLE_DOWN);
CScrollBar::ShowScrollBar
Blendet eine Bildlaufleiste ein oder aus.
void ShowScrollBar(BOOL bShow = TRUE);
Parameter
bShow
Gibt an, ob die Bildlaufleiste angezeigt oder ausgeblendet wird. Wenn dieser Parameter lautet TRUE
, wird die Bildlaufleiste angezeigt. Andernfalls ist er ausgeblendet.
Hinweise
Eine Anwendung sollte diese Funktion nicht aufrufen, um eine Bildlaufleiste auszublenden, während eine Bildlaufleistenbenachrichtigung verarbeitet wird.
Beispiel
Ein Beispiel hierfür finden Sie unter CScrollBar::Create
.
Siehe auch
CWnd
Klasse
Hierarchiediagramm
CButton
Klasse
CComboBox
Klasse
CEdit
Klasse
CListBox
Klasse
CStatic
Klasse
CDialog
Klasse