Partager via


GetScrollInfo, fonction (winuser.h)

La fonction GetScrollInfo récupère les paramètres d’une barre de défilement, notamment les positions de défilement minimales et maximales, la taille de la page et la position de la zone de défilement (pouce).

Syntaxe

BOOL GetScrollInfo(
  [in]      HWND         hwnd,
  [in]      int          nBar,
  [in, out] LPSCROLLINFO lpsi
);

Paramètres

[in] hwnd

Type : HWND

Gérez 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 fnBar .

[in] nBar

Type : int

Spécifie le type de barre de défilement pour lequel récupérer les paramètres. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
SB_CTL
Récupère les paramètres 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
Récupère les paramètres de la barre de défilement horizontale standard de la fenêtre.
SB_VERT
Récupère les paramètres de la barre de défilement verticale standard de la fenêtre.

[in, out] lpsi

Type : LPSCROLLINFO

Pointeur vers une structure SCROLLINFO . Avant d’appeler GetScrollInfo, définissez le membre cbSize sur sizeof(SCROLLINFO) et définissez le membre fMask pour spécifier les paramètres de la barre de défilement à récupérer. Avant de retourner, la fonction copie les paramètres spécifiés dans les membres appropriés de la structure.

Le membre fMask peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
SIF_PAGE
Copie la page de défilement dans le membre nPage de la structure SCROLLINFO pointée par lpsi.
SIF_POS
Copie la position de défilement dans le membre nPos de la structure SCROLLINFO pointée par lpsi.
SIF_RANGE
Copie la plage de défilement vers les membres nMin et nMax de la structure SCROLLINFO pointée vers lpsi.
SIF_TRACKPOS
Copie la position de suivi de la zone de défilement actuelle dans le membre nTrackPos de la structure SCROLLINFO pointée vers lpsi.

Valeur retournée

Type : BOOL

Si la fonction a récupéré des valeurs, la valeur de retour est différente de zéro.

Si la fonction ne récupère aucune valeur, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

La fonction GetScrollInfo permet aux applications d’utiliser des positions de défilement 32 bits. Bien que les messages qui indiquent la position de la barre de défilement, WM_HSCROLL et WM_VSCROLL, fournissent seulement 16 bits de données de position, les fonctions SetScrollInfo et GetScrollInfo fournissent 32 bits de données de position de la barre de défilement. Ainsi, une application peut appeler GetScrollInfo lors du traitement des messages WM_HSCROLL ou WM_VSCROLL pour obtenir des données de position de la barre de défilement 32 bits.

Pour obtenir la position 32 bits de la zone de défilement (pouce) pendant une SB_THUMBTRACK code de requête dans un message WM_HSCROLL ou WM_VSCROLL , appelez GetScrollInfo avec la valeur SIF_TRACKPOS dans le membre fMask de la structure SCROLLINFO . La fonction retourne la position de suivi de la zone de défilement dans le membre nTrackPos de la structure SCROLLINFO . Cela vous permet d’obtenir la position de la zone de défilement à mesure que l’utilisateur la déplace. L’exemple de code suivant illustre la technique.

SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            si.fMask = SIF_TRACKPOS;
 
          // Call GetScrollInfo to get current tracking 
          //    position in si.nTrackPos
 
            if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
                return 1; // GetScrollInfo failed
            break;
        .
        .
        .
    }

Si le paramètre fnBar 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_GETSCROLLINFO à la fenêtre pour obtenir des informations de barre de défilement. Cela permet à GetScrollInfo 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_GETSCROLLINFO , la fonction GetScrollInfo échoue.

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

Référence

SCROLLINFO

SetScrollInfo

WM_HSCROLL

WM_VSCROLL