La classe CScrollBar
Fournit les fonctionnalités d'un contrôle de barre de défilement Windows.
Syntaxe
class CScrollBar : public CWnd
Membres
Constructeurs publics
Nom | Description |
---|---|
CScrollBar::CScrollBar |
Construit un objet CScrollBar . |
Méthodes publiques
Nom | Description |
---|---|
CScrollBar::Create |
Crée la barre de défilement Windows et l’attache à l’objet CScrollBar . |
CScrollBar::EnableScrollBar |
Active ou désactive une flèche (ou les deux) d'une barre de défilement. |
CScrollBar::GetScrollBarInfo |
Récupère des informations sur la barre de défilement à l’aide d’une SCROLLBARINFO structure. |
CScrollBar::GetScrollInfo |
Récupère des informations sur la barre de défilement. |
CScrollBar::GetScrollLimit |
Récupère la limite de la barre de défilement |
CScrollBar::GetScrollPos |
Récupère la position actuelle d'une case de défilement. |
CScrollBar::GetScrollRange |
Récupère les positions minimales et maximales actuelles de barre de défilement pour la barre de défilement donnée. |
CScrollBar::SetScrollInfo |
Définit les informations sur la barre de défilement. |
CScrollBar::SetScrollPos |
Définit la position actuelle d’une zone de défilement. |
CScrollBar::SetScrollRange |
Définit les valeurs de position minimale et maximale de la barre de défilement donnée. |
CScrollBar::ShowScrollBar |
Affiche ou masque une barre de défilement. |
Notes
Vous créez un contrôle de barre de défilement en deux étapes. Tout d’abord, appelez le constructeur CScrollBar
pour construire l’objet CScrollBar
, puis appelez la Create
fonction membre pour créer le contrôle de barre de défilement Windows et l’attacher à l’objet CScrollBar
.
Si vous créez un CScrollBar
objet dans une boîte de dialogue (via une ressource de boîte de dialogue), il CScrollBar
est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.
Si vous créez un CScrollBar
objet dans une fenêtre, vous devrez peut-être également le détruire.
Si vous créez l’objet CScrollBar
sur la pile, il est détruit automatiquement. Si vous créez l’objet CScrollBar
sur le tas à l’aide de la new
fonction, vous devez appeler delete
l’objet pour le détruire lorsque l’utilisateur termine la barre de défilement Windows.
Si vous allouez une mémoire dans l’objet CScrollBar
, remplacez le CScrollBar
destructeur pour supprimer les allocations.
Pour plus d’informations sur l’utilisation CScrollBar
, consultez Contrôles.
Hiérarchie d'héritage
CScrollBar
Spécifications
En-tête : afxwin.h
CScrollBar::Create
Crée la barre de défilement Windows et l’attache à l’objet CScrollBar
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paramètres
dwStyle
Spécifie le style de la barre de défilement. Appliquez n’importe quelle combinaison de styles de barre de défilement à la barre de défilement.
rect
Spécifie la taille et la position de la barre de défilement. Peut être une RECT
structure ou un CRect
objet.
pParentWnd
Spécifie la fenêtre parente de la barre de défilement, généralement un CDialog
objet. Il ne doit pas être NULL
.
nID
ID de contrôle de la barre de défilement.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Vous construisez un CScrollBar
objet en deux étapes. Tout d’abord, appelez le constructeur, qui construit l’objet CScrollBar
, puis appelez Create
, qui crée et initialise la barre de défilement Windows associée et l’attache à l’objet CScrollBar
.
Appliquez les styles de fenêtre suivants à une barre de défilement :
WS_CHILD
ToujoursWS_VISIBLE
HabituellementWS_DISABLED
RarementWS_GROUP
Pour regrouper les contrôles
Exemple
// 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
Construit un objet CScrollBar
.
CScrollBar();
Notes
Après avoir construit l’objet, appelez la Create
fonction membre pour créer et initialiser la barre de défilement Windows.
Exemple
CScrollBar m_ScrollBarHorz;
CScrollBar::EnableScrollBar
Active ou désactive une flèche (ou les deux) d'une barre de défilement.
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
Paramètres
nArrowFlags
Spécifie si les flèches de défilement sont activées ou désactivées et quelles flèches sont activées ou désactivées. Ce paramètre peut avoir l'une des valeurs suivantes :
ESB_ENABLE_BOTH
Active les deux flèches d’une barre de défilement.ESB_DISABLE_LTUP
Désactive la flèche gauche d’une barre de défilement horizontale ou la flèche vers le haut d’une barre de défilement verticale.ESB_DISABLE_RTDN
Désactive la flèche droite d’une barre de défilement horizontale ou de la flèche vers le bas d’une barre de défilement verticale.ESB_DISABLE_BOTH
Désactive les deux flèches d’une barre de défilement.
Valeur de retour
Différent de zéro si les flèches sont activées ou désactivées comme spécifié ; sinon, 0, qui indique que les flèches sont déjà dans l’état demandé ou qu’une erreur s’est produite.
Exemple
Consultez l’exemple pour CScrollBar::SetScrollRange
.
CScrollBar::GetScrollBarInfo
Récupère les informations que la structure SCROLLBARINFO
conserve à propos d'une barre de défilement.
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
Paramètres
pScrollInfo
Pointeur vers la SCROLLBARINFO
structure.
Valeur de retour
Retourne TRUE
en cas de réussite, FALSE
en cas d’échec.
Notes
Cette fonction membre émule les fonctionnalités du SBM_SCROLLBARINFO
message, comme décrit dans le Kit de développement logiciel (SDK) Windows.
CScrollBar::GetScrollInfo
Récupère les informations que la structure SCROLLINFO
conserve à propos d'une barre de défilement.
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Paramètres
lpScrollInfo
Pointeur vers une SCROLLINFO
structure. Pour plus d’informations sur cette structure, consultez le Kit de développement logiciel (SDK) Windows.
nMask
Spécifie les paramètres de barre de défilement à récupérer. Utilisation classique, spécifie SIF_ALL
une combinaison de SIF_PAGE
, SIF_POS
, SIF_TRACKPOS
et SIF_RANGE
. Pour plus d’informations sur les valeurs, consultez SCROLLINFO
cette nMask
rubrique.
Valeur de retour
Si le message a récupéré des valeurs, le retour est TRUE
. Dans le cas contraire, il prend la valeur FALSE
.
Notes
GetScrollInfo
permet aux applications d’utiliser des positions de défilement 32 bits.
La SCROLLINFO
structure contient des informations sur une barre de défilement, y compris les positions minimales et maximales de défilement, la taille de la page et la position de la zone de défilement (le pouce). Pour plus d’informations sur la modification des valeurs par défaut de la structure, consultez la SCROLLINFO
rubrique structure dans le Kit de développement logiciel (SDK) Windows.
Les gestionnaires de messages Windows MFC qui indiquent la position de la barre de défilement, CWnd::OnHScroll
et CWnd::OnVScroll
fournissent uniquement 16 bits de données de position. GetScrollInfo
et SetScrollInfo
fournissez 32 bits de données de position de barre de défilement. Par conséquent, une application peut appeler GetScrollInfo
lors du traitement CWnd::OnHScroll
ou CWnd::OnVScroll
obtenir des données de position de barre de défilement 32 bits.
Exemple
Consultez l’exemple pour CWnd::OnHScroll
.
CScrollBar::GetScrollLimit
Récupère la position de défilement maximale de la barre de défilement.
int GetScrollLimit();
Valeur de retour
Spécifie la position maximale d’une barre de défilement si elle réussit ; sinon 0.
Exemple
Consultez l’exemple pour CWnd::OnHScroll
.
CScrollBar::GetScrollPos
Récupère la position actuelle d'une case de défilement.
int GetScrollPos() const;
Valeur de retour
Spécifie la position actuelle de la zone de défilement en cas de réussite ; sinon 0.
Notes
La position actuelle est une valeur relative qui dépend de la plage de défilement actuelle. Par exemple, si la plage de défilement est de 100 à 200 et que la zone de défilement se trouve au milieu de la barre, la position actuelle est 150.
Exemple
Consultez l’exemple pour CWnd::OnHScroll
.
CScrollBar::GetScrollRange
Copie les positions minimales et maximales actuelles de barre de défilement pour la barre de défilement donnée aux emplacements spécifiés par lpMinPos
et lpMaxPos
.
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
Paramètres
lpMinPos
Pointe vers la variable entière qui doit recevoir la position minimale.
lpMaxPos
Pointe vers la variable entière qui doit recevoir la position maximale.
Notes
La plage par défaut d’un contrôle de barre de défilement est vide (les deux valeurs sont 0).
Exemple
Consultez l’exemple pour CWnd::OnHScroll
.
CScrollBar::SetScrollInfo
Définit les informations que la SCROLLINFO
structure gère à propos d’une barre de défilement.
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Paramètres
lpScrollInfo
Pointeur vers une SCROLLINFO
structure.
bRedraw
Spécifie si la barre de défilement doit être redessinée pour refléter les nouvelles informations. Si bRedraw
c’est TRUE
le cas, la barre de défilement est redessinée. Si c’est FALSE
le cas, il n’est pas redessiné. La barre de défilement est redessinée par défaut.
Valeur de retour
En cas de réussite, le retour est TRUE
. Dans le cas contraire, il prend la valeur FALSE
.
Notes
Vous devez fournir les valeurs requises par les paramètres de SCROLLINFO
structure, y compris les valeurs d’indicateur.
La SCROLLINFO
structure contient des informations sur une barre de défilement, y compris les positions minimales et maximales de défilement, la taille de la page et la position de la zone de défilement (le pouce). Pour plus d’informations sur la modification des valeurs par défaut de la structure, consultez la SCROLLINFO
rubrique structure dans le Kit de développement logiciel (SDK) Windows.
Exemple
// 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
Définit la position actuelle d’une zone de défilement à celle spécifiée par nPos
et, si elle est spécifiée, redessine la barre de défilement pour refléter la nouvelle position.
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
Paramètres
nPos
Spécifie la nouvelle position de la zone de défilement. Elle doit se trouver dans la plage de défilement.
bRedraw
Spécifie si la barre de défilement doit être redessinée pour refléter la nouvelle position. Si bRedraw
c’est TRUE
le cas, la barre de défilement est redessinée. Si c’est FALSE
le cas, il n’est pas redessiné. La barre de défilement est redessinée par défaut.
Valeur de retour
Spécifie la position précédente de la zone de défilement en cas de réussite ; sinon 0.
Notes
Définissez bRedraw
la valeur à FALSE
chaque fois que la barre de défilement sera redessinée par un appel ultérieur à une autre fonction pour éviter que la barre de défilement soit redessinée deux fois dans un intervalle court.
Exemple
Consultez l’exemple de CScrollBar ::SetScrollRange.
CScrollBar::SetScrollRange
Définit les valeurs de position minimale et maximale de la barre de défilement donnée.
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Paramètres
nMinPos
Spécifie la position minimale de défilement.
nMaxPos
Spécifie la position de défilement maximale.
bRedraw
Spécifie si la barre de défilement doit être redessinée pour refléter la modification. Si bRedraw
c’est TRUE
le cas, la barre de défilement est redessinée ; si FALSE
, elle n’est pas redessinée. Il est redessiné par défaut.
Notes
Définissez nMinPos
et nMaxPos
0 pour masquer les barres de défilement standard.
N’appelez pas cette fonction pour masquer une barre de défilement lors du traitement d’un message de notification de barre de défilement.
Si un appel à la SetScrollRange
fonction membre suit immédiatement un appel à la SetScrollPos
fonction membre, définissez-le bRedraw
sur SetScrollPos
0 pour empêcher le redéployage de la barre de défilement deux fois.
La différence entre les valeurs spécifiées par nMinPos
et nMaxPos
ne doit pas être supérieure à 32 767. La plage par défaut d’un contrôle de barre de défilement est vide (les deux nMinPos
et nMaxPos
0).
Exemple
// 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
Affiche ou masque une barre de défilement.
void ShowScrollBar(BOOL bShow = TRUE);
Paramètres
bShow
Spécifie si la barre de défilement est affichée ou masquée. Si ce paramètre est TRUE
, la barre de défilement est affichée ; sinon, elle est masquée.
Notes
Une application ne doit pas appeler cette fonction pour masquer une barre de défilement lors du traitement d’un message de notification de barre de défilement.
Exemple
Consultez l’exemple pour CScrollBar::Create
.
Voir aussi
CWnd
Classe
Graphique hiérarchique
CButton
Classe
CComboBox
Classe
CEdit
Classe
CListBox
Classe
CStatic
Classe
CDialog
Classe