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

CObject

CCmdTarget

CWnd

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 Toujours

  • WS_VISIBLE Habituellement

  • WS_DISABLED Rarement

  • WS_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_ALLune combinaison de SIF_PAGE, SIF_POS, SIF_TRACKPOSet 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::OnHScrollet CWnd::OnVScrollfournissent 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 TRUEle cas, la barre de défilement est redessinée. Si c’est FALSEle 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 TRUEle cas, la barre de défilement est redessinée. Si c’est FALSEle 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 TRUEle 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