Freigeben über


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 CScrollBarfinden Sie unter "Steuerelemente".

Vererbungshierarchie

CObject

CCmdTarget

CWnd

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 Immer

  • WS_VISIBLE Gewöhnlich

  • WS_DISABLED Selten

  • WS_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_ALLgibt eine Kombination aus SIF_PAGE, , SIF_POS, , SIF_TRACKPOSund 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 TRUEdie 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::OnHScrollund CWnd::OnVScrollstellen 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 TRUEdie 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