Share via


CScrollBar-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt de functionaliteit van een Windows-besturingselement met schuifbalk.

Syntaxis

class CScrollBar : public CWnd

Leden

Openbare constructors

Naam Description
CScrollBar::CScrollBar Maakt een CScrollBar object.

Openbare methoden

Naam Description
CScrollBar::Create Hiermee maakt u de Windows-schuifbalk en koppelt u deze aan het CScrollBar object.
CScrollBar::EnableScrollBar Hiermee schakelt u een of beide pijlen van een schuifbalk in of uit.
CScrollBar::GetScrollBarInfo Hiermee haalt u informatie over de schuifbalk op met behulp van een SCROLLBARINFO structuur.
CScrollBar::GetScrollInfo Haalt informatie over de schuifbalk op.
CScrollBar::GetScrollLimit Haalt de limiet van de schuifbalk op
CScrollBar::GetScrollPos Hiermee haalt u de huidige positie van een schuifvak op.
CScrollBar::GetScrollRange Haalt de huidige minimale en maximale schuifbalkposities voor de opgegeven schuifbalk op.
CScrollBar::SetScrollInfo Hiermee stelt u informatie in over de schuifbalk.
CScrollBar::SetScrollPos Hiermee stelt u de huidige positie van een schuifvak in.
CScrollBar::SetScrollRange Hiermee stelt u de minimum- en maximumpositiewaarden voor de opgegeven schuifbalk in.
CScrollBar::ShowScrollBar Hiermee wordt een schuifbalk weergegeven of verborgen.

Opmerkingen

U maakt in twee stappen een besturingselement voor een schuifbalk. Roep eerst de constructor CScrollBar aan om het CScrollBar object samen te stellen, roep vervolgens de Create lidfunctie aan om het besturingselement van de Schuifbalk van Windows te maken en deze aan het CScrollBar object te koppelen.

Als u een CScrollBar object in een dialoogvenster maakt (via een dialoogvensterresource), wordt het CScrollBar automatisch vernietigd wanneer de gebruiker het dialoogvenster sluit.

Als u een CScrollBar object in een venster maakt, moet u het mogelijk ook vernietigen.

Als u het CScrollBar object op de stapel maakt, wordt het automatisch vernietigd. Als u het CScrollBar object op de heap maakt met behulp van de new functie, moet u het object aanroepen delete om het te vernietigen wanneer de gebruiker de Windows-schuifbalk beëindigt.

Als u geheugen in het CScrollBar object toewijst, overschrijft u destructor CScrollBar om de toewijzingen te verwijderen.

Zie Besturingselementen voor verwante informatie over het gebruikCScrollBar.

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CScrollBar

Requirements

Rubriek:afxwin.h

CScrollBar::Create

Hiermee maakt u de Windows-schuifbalk en koppelt u deze aan het CScrollBar object.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameterwaarden

dwStyle
Hiermee geeft u de stijl van de schuifbalk op. Pas een combinatie van schuifbalkstijlen toe op de schuifbalk.

rect
Hiermee geeft u de grootte en positie van de schuifbalk op. Dit kan een RECT structuur of een CRect object zijn.

pParentWnd
Hiermee geeft u het bovenliggende venster van de schuifbalk, meestal een CDialog object. Het mag niet zijn NULL.

nID
De besturings-id van de schuifbalk.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

U maakt een CScrollBar object in twee stappen. Roep eerst de constructor aan, waarmee het CScrollBar object wordt samengesteld; vervolgens aanroept Create, waarmee de bijbehorende Windows-schuifbalk wordt gemaakt en geïnitialiseerd en gekoppeld aan het CScrollBar object.

Pas de volgende vensterstijlen toe op een schuifbalk:

  • WS_CHILD Altijd

  • WS_VISIBLE Gewoonlijk

  • WS_DISABLED Zelden

  • WS_GROUP Besturingselementen groeperen

Example

// 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

Maakt een CScrollBar object.

CScrollBar();

Opmerkingen

Nadat u het object hebt gemaakt, roept u de Create lidfunctie aan om de Schuifbalk van Windows te maken en te initialiseren.

Example

CScrollBar m_ScrollBarHorz;

CScrollBar::EnableScrollBar

Hiermee schakelt u een of beide pijlen van een schuifbalk in of uit.

BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);

Parameterwaarden

nArrowFlags
Hiermee geeft u op of de schuifpijlen zijn ingeschakeld of uitgeschakeld en welke pijlen zijn ingeschakeld of uitgeschakeld. Deze parameter kan een van de volgende waarden zijn:

  • ESB_ENABLE_BOTH Hiermee schakelt u beide pijlen van een schuifbalk in.

  • ESB_DISABLE_LTUP Hiermee schakelt u de pijl-links van een horizontale schuifbalk of de pijl-omhoog van een verticale schuifbalk uit.

  • ESB_DISABLE_RTDN Hiermee schakelt u de pijl-rechts van een horizontale schuifbalk of de pijl-omlaag van een verticale schuifbalk uit.

  • ESB_DISABLE_BOTH Hiermee schakelt u beide pijlen van een schuifbalk uit.

Retourwaarde

Niet-nul als de pijlen zijn ingeschakeld of uitgeschakeld zoals opgegeven; anders 0, wat aangeeft dat de pijlen zich al in de aangevraagde status bevinden of dat er een fout is opgetreden.

Example

Zie het voorbeeld voor CScrollBar::SetScrollRange.

CScrollBar::GetScrollBarInfo

Haalt de informatie op die de SCROLLBARINFO structuur over een schuifbalk onderhoudt.

BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;

Parameterwaarden

pScrollInfo
Een aanwijzer naar de SCROLLBARINFO structuur.

Retourwaarde

TRUE Geeft als resultaat het succes, FALSE bij fouten.

Opmerkingen

Met deze lidfunctie wordt de functionaliteit van het SBM_SCROLLBARINFO bericht geëmuleren, zoals beschreven in de Windows SDK.

CScrollBar::GetScrollInfo

Haalt de informatie op die de SCROLLINFO structuur over een schuifbalk onderhoudt.

BOOL GetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Parameterwaarden

lpScrollInfo
Een aanwijzer naar een SCROLLINFO structuur. Zie de Windows SDK voor meer informatie over deze structuur.

nMask
Hiermee geeft u de schuifbalkparameters op die moeten worden opgehaald. Typisch gebruik, SIF_ALLgeeft een combinatie van SIF_PAGE, SIF_POS, SIF_TRACKPOSen .SIF_RANGE Zie SCROLLINFO voor meer informatie over de nMask waarden.

Retourwaarde

Als het bericht waarden heeft opgehaald, is TRUEhet resultaat. Anders is het FALSE.

Opmerkingen

GetScrollInfo stelt toepassingen in staat om 32-bits schuifposities te gebruiken.

De SCROLLINFO structuur bevat informatie over een schuifbalk, inclusief de minimale en maximale schuifposities, het paginaformaat en de positie van het schuifvak (de duim). Zie het SCROLLINFO structuuronderwerp in de Windows SDK voor meer informatie over het wijzigen van de standaardinstellingen voor de structuur.

De MFC Windows-berichthandlers die de positie van de schuifbalk aangeven, CWnd::OnHScrollen CWnd::OnVScrolldie slechts 16 bits aan positiegegevens leveren. GetScrollInfo en SetScrollInfo geef 32 bits aan schuifbalkpositiegegevens op. Een toepassing kan dus aanroepen GetScrollInfo tijdens de verwerking CWnd::OnHScroll of CWnd::OnVScroll om gegevens van de 32-bits schuifbalkpositie te verkrijgen.

Example

Zie het voorbeeld voor CWnd::OnHScroll.

CScrollBar::GetScrollLimit

Hiermee haalt u de maximale schuifpositie van de schuifbalk op.

int GetScrollLimit();

Retourwaarde

Hiermee geeft u de maximale positie van een schuifbalk indien geslaagd; anders 0.

Example

Zie het voorbeeld voor CWnd::OnHScroll.

CScrollBar::GetScrollPos

Hiermee haalt u de huidige positie van een schuifvak op.

int GetScrollPos() const;

Retourwaarde

Hiermee geeft u de huidige positie van het schuifvak indien geslaagd; anders 0.

Opmerkingen

De huidige positie is een relatieve waarde die afhankelijk is van het huidige schuifbereik. Als het schuifbereik bijvoorbeeld 100 tot 200 is en het schuifvak zich midden in de balk bevindt, is de huidige positie 150.

Example

Zie het voorbeeld voor CWnd::OnHScroll.

CScrollBar::GetScrollRange

Hiermee kopieert u de huidige minimale en maximale schuifbalkposities voor de opgegeven schuifbalk naar de locaties die zijn opgegeven door lpMinPos en lpMaxPos.

void GetScrollRange(
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parameterwaarden

lpMinPos
Verwijst naar de variabele geheel getal die de minimale positie moet ontvangen.

lpMaxPos
Verwijst naar de variabele geheel getal dat de maximale positie ontvangt.

Opmerkingen

Het standaardbereik voor een schuifbalkbesturingselement is leeg (beide waarden zijn 0).

Example

Zie het voorbeeld voor CWnd::OnHScroll.

CScrollBar::SetScrollInfo

Hiermee stelt u de informatie in die de SCROLLINFO structuur over een schuifbalk onderhoudt.

BOOL SetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Parameterwaarden

lpScrollInfo
Een aanwijzer naar een SCROLLINFO structuur.

bRedraw
Hiermee geeft u op of de schuifbalk opnieuw moet worden getekend om de nieuwe informatie weer te geven. Als bRedraw dat het is TRUE, wordt de schuifbalk opnieuw getekend. Als dat zo is FALSE, wordt het niet opnieuw getekend. De schuifbalk wordt standaard opnieuw getekend.

Retourwaarde

Als het resultaat is geslaagd, is TRUEhet resultaat. Anders is het FALSE.

Opmerkingen

U moet de waarden opgeven die vereist zijn voor de SCROLLINFO structuurparameters, inclusief de vlagwaarden.

De SCROLLINFO structuur bevat informatie over een schuifbalk, inclusief de minimale en maximale schuifposities, het paginaformaat en de positie van het schuifvak (de duim). Zie het SCROLLINFO structuuronderwerp in de Windows SDK voor meer informatie over het wijzigen van de standaardinstellingen voor de structuur.

Example

// 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

Hiermee stelt u de huidige positie van een schuifvak in op de positie die is opgegeven door nPos en, indien opgegeven, wordt de schuifbalk opnieuw getekend om de nieuwe positie weer te geven.

int SetScrollPos(
    int nPos,
    BOOL bRedraw = TRUE);

Parameterwaarden

nPos
Hiermee geeft u de nieuwe positie voor het schuifvak. Deze moet binnen het schuifbereik vallen.

bRedraw
Hiermee geeft u op of de schuifbalk opnieuw moet worden getekend om de nieuwe positie weer te geven. Als bRedraw dat het is TRUE, wordt de schuifbalk opnieuw getekend. Als dat zo is FALSE, wordt het niet opnieuw getekend. De schuifbalk wordt standaard opnieuw getekend.

Retourwaarde

Hiermee geeft u de vorige positie van het schuifvak indien geslaagd; anders 0.

Opmerkingen

Ingesteld bRedraw op FALSE wanneer de schuifbalk opnieuw wordt getekend door een volgende aanroep naar een andere functie om te voorkomen dat de schuifbalk tweemaal binnen een kort interval opnieuw wordt getekend.

Example

Zie het voorbeeld voor CScrollBar::SetScrollRange.

CScrollBar::SetScrollRange

Hiermee stelt u de minimum- en maximumpositiewaarden voor de opgegeven schuifbalk in.

void SetScrollRange(
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE);

Parameterwaarden

nMinPos
Hiermee geeft u de minimale schuifpositie.

nMaxPos
Hiermee geeft u de maximale schuifpositie.

bRedraw
Hiermee geeft u op of de schuifbalk opnieuw moet worden getekend om de wijziging weer te geven. Als dat het isTRUE, wordt de schuifbalk opnieuw getekend. Als bRedrawFALSE, wordt deze niet opnieuw getekend. Deze wordt standaard opnieuw getekend.

Opmerkingen

Stel nMinPos en nMaxPos op 0 in om standaard schuifbalken te verbergen.

Roep deze functie niet aan om een schuifbalk te verbergen tijdens het verwerken van een meldingsbericht op de schuifbalk.

Als een aanroep onmiddellijk SetScrollRange volgt op een aanroep naar de SetScrollPos lidfunctie, stelt u bRedraw in SetScrollPos op 0 om te voorkomen dat de schuifbalk tweemaal opnieuw wordt getekend.

Het verschil tussen de waarden die zijn opgegeven door nMinPos en nMaxPos mag niet groter zijn dan 32.767. Het standaardbereik voor een schuifbalkbesturingselement is leeg (beide nMinPos en nMaxPos zijn 0).

Example

// 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

Hiermee wordt een schuifbalk weergegeven of verborgen.

void ShowScrollBar(BOOL bShow = TRUE);

Parameterwaarden

bShow
Hiermee geeft u op of de schuifbalk wordt weergegeven of verborgen. Als deze parameter is TRUE, wordt de schuifbalk weergegeven. Anders is deze verborgen.

Opmerkingen

Een toepassing mag deze functie niet aanroepen om een schuifbalk te verbergen tijdens het verwerken van een meldingsbericht op de schuifbalk.

Example

Zie het voorbeeld voor CScrollBar::Create.

Zie ook

CWnd klasse
Hiërarchiegrafiek
CButton klasse
CComboBox klasse
CEdit klasse
CListBox klasse
CStatic klasse
CDialog klasse