Partager via


Fonction SetScrollRange (winuser.h)

La fonction SetScrollRange définit les positions de zone de défilement minimales et maximales pour la barre de défilement spécifiée.

Note La fonction SetScrollRange est fournie pour la compatibilité descendante. Les nouvelles applications doivent utiliser la fonction SetScrollInfo .
 

Syntaxe

BOOL SetScrollRange(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nMinPos,
  [in] int  nMaxPos,
  [in] BOOL bRedraw
);

Paramètres

[in] hWnd

Type : HWND

Gérez vers un contrôle de barre de défilement ou une fenêtre avec une barre de défilement standard, en fonction de la valeur du paramètre nBar .

[in] nBar

Type : int

Spécifie la barre de défilement à définir. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
SB_CTL
Définit la plage d’un contrôle de barre de défilement. Le paramètre hwnd doit être la poignée du contrôle de barre de défilement.
SB_HORZ
Définit la plage de la barre de défilement horizontale standard d’une fenêtre.
SB_VERT
Définit la plage de la barre de défilement verticale standard d’une fenêtre.

[in] nMinPos

Type : int

Spécifie la position de défilement minimale.

[in] nMaxPos

Type : int

Spécifie la position de défilement maximale.

[in] bRedraw

Type : BOOL

Spécifie si la barre de défilement doit être redessinée pour refléter la modification. Si ce paramètre a la valeur TRUE, la barre de défilement est redessinée. Si elle est FALSE, la barre de défilement n’est pas redessinée.

Valeur retournée

Type : BOOL

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Vous pouvez utiliser SetScrollRange pour masquer la barre de défilement en définissant nMinPos et nMaxPos sur la même valeur. Une application ne doit pas appeler la fonction SetScrollRange pour masquer une barre de défilement lors du traitement d’un message de barre de défilement. Les nouvelles applications doivent utiliser la fonction ShowScrollBar pour masquer la barre de défilement.

Si l’appel à SetScrollRange suit immédiatement un appel à la fonction SetScrollPos , le paramètre bRedraw dans SetScrollPos doit être égal à zéro pour empêcher la barre de défilement d’être dessinée deux fois.

La plage par défaut d’une barre de défilement standard est comprise entre 0 et 100. La plage par défaut d’un contrôle de barre de défilement est vide (les valeurs des paramètres nMinPos et nMaxPos sont égales à zéro). La différence entre les valeurs spécifiées par les paramètres nMinPos et nMaxPos ne doit pas être supérieure à la valeur de MAXLONG.

Étant donné que les messages qui indiquent la position de la barre de défilement, WM_HSCROLL et WM_VSCROLL, sont limités à 16 bits de données de position, les applications qui s’appuient uniquement sur ces messages pour les données de position ont une valeur maximale pratique de 65 535 pour le paramètre nMaxPos de la fonction SetScrollRange.

Toutefois, étant donné que les fonctions SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, GetScrollPos et GetScrollRange prennent en charge les données de position de la barre de défilement 32 bits, il existe un moyen de contourner la barrière 16 bits des messages WM_HSCROLL et WM_VSCROLL . Pour obtenir une description de la technique, consultez GetScrollInfo .

Si le paramètre nBar est SB_CTL et que la fenêtre spécifiée par le paramètre hWnd n’est pas un contrôle de barre de défilement système, le système envoie le message SBM_SETRANGE à la fenêtre pour définir les informations de la barre de défilement. Cela permet à SetScrollRange de fonctionner sur un contrôle personnalisé qui imite une barre de défilement. Si la fenêtre ne gère pas le message SBM_SETRANGE , la fonction SetScrollRange échoue.

Exemples

Pour obtenir un exemple, consultez Utilisation du format presse-papiers Owner-Display.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-misc-l1-2-0 (introduit dans Windows 8.1)

Voir aussi

GetScrollInfo

GetScrollPos

GetScrollRange

Référence

SetScrollInfo

SetScrollPos

ShowScrollBar