Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Classe
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à
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_CHILDSempreWS_VISIBLESolitamenteWS_DISABLEDRaramenteWS_GROUPPer 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_BOTHAbilita entrambe le frecce di una barra di scorrimento.ESB_DISABLE_LTUPDisabilita la freccia sinistra di una barra di scorrimento orizzontale o la freccia su di una barra di scorrimento verticale.ESB_DISABLE_RTDNDisabilita la freccia destra di una barra di scorrimento orizzontale o la freccia giù di una barra di scorrimento verticale.ESB_DISABLE_BOTHDisabilita 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