Condividi tramite


Classe CScrollBar

Fornisce la funzionalità di un controllo barra di scorrimento di Windows.

Sintassi

class CScrollBar : public CWnd

Membri

Costruttori pubblici

Nome Descrizione
CScrollBar::CScrollBar Costruisce un oggetto CScrollBar.

Metodi pubblici

Nome Descrizione
CScrollBar::Create Crea la barra di scorrimento di Windows e la collega all'oggetto CScrollBar .
CScrollBar::EnableScrollBar Abilita o disabilita una o entrambe le frecce di una barra di scorrimento.
CScrollBar::GetScrollBarInfo Recupera informazioni sulla barra di scorrimento utilizzando una SCROLLBARINFO struttura.
CScrollBar::GetScrollInfo Recupera informazioni sulla barra di scorrimento.
CScrollBar::GetScrollLimit Recupera il limite della barra di scorrimento
CScrollBar::GetScrollPos Recupera la posizione corrente di una casella di scorrimento.
CScrollBar::GetScrollRange Recupera le posizioni della barra di scorrimento minima e massima correnti per la barra di scorrimento specificata.
CScrollBar::SetScrollInfo Imposta informazioni sulla barra di scorrimento.
CScrollBar::SetScrollPos Imposta la posizione corrente di una casella di scorrimento.
CScrollBar::SetScrollRange Imposta i valori di posizione minima e massima correnti per la barra di scorrimento specificata.
CScrollBar::ShowScrollBar Visualizza o nasconde una barra di scorrimento.

Osservazioni:

Si crea un controllo barra di scorrimento in due passaggi. Chiamare prima di tutto il costruttore CScrollBar per costruire l'oggetto CScrollBar , quindi chiamare la Create funzione membro per creare il controllo barra di scorrimento di Windows e collegarlo all'oggetto CScrollBar .

Se si crea un CScrollBar oggetto all'interno di una finestra di dialogo (tramite una risorsa di dialogo), l'oggetto CScrollBar viene eliminato automaticamente quando l'utente chiude la finestra di dialogo.

Se si crea un CScrollBar oggetto all'interno di una finestra, potrebbe essere necessario eliminarlo definitivamente.

Se si crea l'oggetto CScrollBar nello stack, viene eliminato automaticamente. Se si crea l'oggetto nell'heap CScrollBar usando la new funzione , è necessario chiamare delete sull'oggetto per distruggerlo quando l'utente termina la barra di scorrimento di Windows.

Se si alloca memoria nell'oggetto, eseguire l'override CScrollBar del CScrollBar distruttore per eliminare le allocazioni.

Per informazioni correlate sull'uso CScrollBardi , vedere Controlli.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CScrollBar

Requisiti

Intestazione: afxwin.h

CScrollBar::Create

Crea la barra di scorrimento di Windows e la collega all'oggetto CScrollBar .

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

Parametri

dwStyle
Specifica lo stile della barra di scorrimento. Applicare qualsiasi combinazione di stili barra di scorrimento alla barra di scorrimento.

rect
Specifica le dimensioni e la posizione della barra di scorrimento. Può essere una RECT struttura o un CRect oggetto .

pParentWnd
Specifica la finestra padre della barra di scorrimento, in genere un CDialog oggetto . Non deve essere NULL.

nID
ID di controllo della barra di scorrimento.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Si costruisce un CScrollBar oggetto in due passaggi. Chiamare innanzitutto il costruttore , che costruisce l'oggetto CScrollBar , quindi chiamare Create, che crea e inizializza la barra di scorrimento di Windows associata e la collega all'oggetto CScrollBar .

Applicare gli stili di finestra seguenti a una barra di scorrimento:

  • WS_CHILD Sempre

  • WS_VISIBLE Solitamente

  • WS_DISABLED Raramente

  • WS_GROUP Per raggruppare i controlli

Esempio

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

Costruisce un oggetto CScrollBar.

CScrollBar();

Osservazioni:

Dopo aver costruito l'oggetto, chiamare la Create funzione membro per creare e inizializzare la barra di scorrimento di Windows.

Esempio

CScrollBar m_ScrollBarHorz;

CScrollBar::EnableScrollBar

Abilita o disabilita una o entrambe le frecce di una barra di scorrimento.

BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);

Parametri

nArrowFlags
Specifica se le frecce di scorrimento sono abilitate o disabilitate e quali frecce sono abilitate o disabilitate. Questo parametro può avere uno dei valori seguenti:

  • ESB_ENABLE_BOTH Abilita entrambe le frecce di una barra di scorrimento.

  • ESB_DISABLE_LTUP Disabilita la freccia sinistra di una barra di scorrimento orizzontale o la freccia su di una barra di scorrimento verticale.

  • ESB_DISABLE_RTDN Disabilita la freccia destra di una barra di scorrimento orizzontale o la freccia giù di una barra di scorrimento verticale.

  • ESB_DISABLE_BOTH Disabilita entrambe le frecce di una barra di scorrimento.

Valore restituito

Diverso da zero se le frecce sono abilitate o disabilitate come specificato; in caso contrario, 0, che indica che le frecce sono già nello stato richiesto o che si è verificato un errore.

Esempio

Vedere l'esempio per CScrollBar::SetScrollRange.

CScrollBar::GetScrollBarInfo

Recupera le informazioni gestite dalla struttura SCROLLBARINFO su una barra di scorrimento.

BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;

Parametri

pScrollInfo
Puntatore alla SCROLLBARINFO struttura.

Valore restituito

Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.

Osservazioni:

Questa funzione membro emula la funzionalità del SBM_SCROLLBARINFO messaggio, come descritto in Windows SDK.

CScrollBar::GetScrollInfo

Recupera le informazioni gestite dalla struttura SCROLLINFO su una barra di scorrimento.

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

Parametri

lpScrollInfo
Puntatore a una SCROLLINFO struttura. Per altre informazioni su questa struttura, vedere Windows SDK.

nMask
Specifica i parametri della barra di scorrimento da recuperare. Utilizzo tipico, SIF_ALL, , specifica una combinazione di SIF_PAGE, SIF_POSSIF_TRACKPOS, e SIF_RANGE. Per altre informazioni sui nMask valori, vedere SCROLLINFO .

Valore restituito

Se il messaggio ha recuperato valori, il valore restituito è TRUE. In caso contrario, è FALSE.

Osservazioni:

GetScrollInfo consente alle applicazioni di usare posizioni di scorrimento a 32 bit.

La SCROLLINFO struttura contiene informazioni su una barra di scorrimento, incluse le posizioni di scorrimento minime e massime, le dimensioni della pagina e la posizione della casella di scorrimento (il pollice). Per altre informazioni sulla modifica delle impostazioni predefinite della struttura, vedere l'argomento SCROLLINFO relativo alla struttura in Windows SDK.

I gestori di messaggi windows MFC che indicano la posizione della barra di scorrimento, CWnd::OnHScrolle CWnd::OnVScroll, forniscono solo 16 bit di dati di posizione. GetScrollInfo e SetScrollInfo forniscono 32 bit di dati di posizione barra di scorrimento. Pertanto, un'applicazione può chiamare GetScrollInfo durante l'elaborazione CWnd::OnHScroll o CWnd::OnVScroll per ottenere dati sulla posizione della barra di scorrimento a 32 bit.

Esempio

Vedere l'esempio per CWnd::OnHScroll.

CScrollBar::GetScrollLimit

Recupera la posizione di scorrimento massima della barra di scorrimento.

int GetScrollLimit();

Valore restituito

Specifica la posizione massima di una barra di scorrimento se ha esito positivo; in caso contrario, 0.

Esempio

Vedere l'esempio per CWnd::OnHScroll.

CScrollBar::GetScrollPos

Recupera la posizione corrente di una casella di scorrimento.

int GetScrollPos() const;

Valore restituito

Specifica la posizione corrente della casella di scorrimento se ha esito positivo; in caso contrario, 0.

Osservazioni:

La posizione corrente è un valore relativo che dipende dall'intervallo di scorrimento corrente. Ad esempio, se l'intervallo di scorrimento è compreso tra 100 e 200 e la casella di scorrimento si trova al centro della barra, la posizione corrente è 150.

Esempio

Vedere l'esempio per CWnd::OnHScroll.

CScrollBar::GetScrollRange

Copia le posizioni della barra di scorrimento minima e massima correnti per la barra di scorrimento specificata nelle posizioni specificate da lpMinPos e lpMaxPos.

void GetScrollRange(
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parametri

lpMinPos
Punta alla variabile integer che deve ricevere la posizione minima.

lpMaxPos
Punta alla variabile integer che deve ricevere la posizione massima.

Osservazioni:

L'intervallo predefinito per un controllo barra di scorrimento è vuoto (entrambi i valori sono 0).

Esempio

Vedere l'esempio per CWnd::OnHScroll.

CScrollBar::SetScrollInfo

Imposta le informazioni che la SCROLLINFO struttura gestisce su una barra di scorrimento.

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

Parametri

lpScrollInfo
Puntatore a una SCROLLINFO struttura.

bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere le nuove informazioni. Se bRedraw è TRUE, la barra di scorrimento viene ridisegnata. Se è FALSE, non viene ridisegnato. La barra di scorrimento viene ridisegnata per impostazione predefinita.

Valore restituito

In caso di esito positivo, il valore restituito è TRUE. In caso contrario, è FALSE.

Osservazioni:

È necessario specificare i valori richiesti dai parametri della SCROLLINFO struttura, inclusi i valori del flag.

La SCROLLINFO struttura contiene informazioni su una barra di scorrimento, incluse le posizioni di scorrimento minime e massime, le dimensioni della pagina e la posizione della casella di scorrimento (il pollice). Per altre informazioni sulla modifica delle impostazioni predefinite della struttura, vedere l'argomento SCROLLINFO relativo alla struttura in Windows SDK.

Esempio

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

Imposta la posizione corrente di una casella di scorrimento su quella specificata da nPos e, se specificato, ridisegna la barra di scorrimento in modo da riflettere la nuova posizione.

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

Parametri

nPos
Specifica la nuova posizione per la casella di scorrimento. Deve trovarsi all'interno dell'intervallo di scorrimento.

bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere la nuova posizione. Se bRedraw è TRUE, la barra di scorrimento viene ridisegnata. Se è FALSE, non viene ridisegnato. La barra di scorrimento viene ridisegnata per impostazione predefinita.

Valore restituito

Specifica la posizione precedente della casella di scorrimento se ha esito positivo; in caso contrario, 0.

Osservazioni:

Impostare bRedraw su FALSE ogni volta che la barra di scorrimento verrà ridisegnata da una chiamata successiva a un'altra funzione per evitare che la barra di scorrimento venga ridisegnata due volte entro un breve intervallo.

Esempio

Vedere l'esempio per CScrollBar::SetScrollRange.

CScrollBar::SetScrollRange

Imposta i valori di posizione minima e massima correnti per la barra di scorrimento specificata.

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

Parametri

nMinPos
Specifica la posizione di scorrimento minima.

nMaxPos
Specifica la posizione di scorrimento massima.

bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere la modifica. Se bRedraw è TRUE, la barra di scorrimento viene ridisegnata; se FALSE, non viene ridisegnata. Viene ridisegnato per impostazione predefinita.

Osservazioni:

Impostare nMinPos e nMaxPos su 0 per nascondere le barre di scorrimento standard.

Non chiamare questa funzione per nascondere una barra di scorrimento durante l'elaborazione di un messaggio di notifica della barra di scorrimento.

Se una chiamata a SetScrollRange segue immediatamente una chiamata alla SetScrollPos funzione membro, impostare su bRedraw SetScrollPos 0 per impedire che la barra di scorrimento venga ridisegnata due volte.

La differenza tra i valori specificati da nMinPos e nMaxPos non deve essere maggiore di 32.767. L'intervallo predefinito per un controllo barra di scorrimento è vuoto (entrambi nMinPos e nMaxPos sono 0).

Esempio

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

Visualizza o nasconde una barra di scorrimento.

void ShowScrollBar(BOOL bShow = TRUE);

Parametri

bShow
Specifica se la barra di scorrimento viene visualizzata o nascosta. Se questo parametro è TRUE, viene visualizzata la barra di scorrimento; in caso contrario, è nascosta.

Osservazioni:

Un'applicazione non deve chiamare questa funzione per nascondere una barra di scorrimento durante l'elaborazione di un messaggio di notifica della barra di scorrimento.

Esempio

Vedere l'esempio per CScrollBar::Create.

Vedi anche

CWnd Classe
Grafico della gerarchia
CButton Classe
CComboBox Classe
CEdit Classe
CListBox Classe
CStatic Classe
CDialog Classe