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 CScrollBar
di , vedere Controlli.
Gerarchia di ereditarietà
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
SempreWS_VISIBLE
SolitamenteWS_DISABLED
RaramenteWS_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_POS
SIF_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::OnHScroll
e 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