ScrollWindowEx, fonction (winuser.h)

La fonction ScrollWindowEx fait défiler le contenu de la zone cliente de la fenêtre spécifiée.

Syntaxe

int ScrollWindowEx(
  [in]  HWND       hWnd,
  [in]  int        dx,
  [in]  int        dy,
  [in]  const RECT *prcScroll,
  [in]  const RECT *prcClip,
  [in]  HRGN       hrgnUpdate,
  [out] LPRECT     prcUpdate,
  [in]  UINT       flags
);

Paramètres

[in] hWnd

Type : HWND

Gérez jusqu’à la fenêtre où la zone cliente doit faire défiler.

[in] dx

Type : int

Spécifie la quantité, en unités d’appareil, du défilement horizontal. Ce paramètre doit être une valeur négative pour faire défiler vers la gauche.

[in] dy

Type : int

Spécifie la quantité, en unités d’appareil, du défilement vertical. Ce paramètre doit être une valeur négative pour faire défiler vers le haut.

[in] prcScroll

Type : const RECT*

Pointeur vers une structure RECT qui spécifie la partie de la zone cliente à faire défiler. Si ce paramètre a la valeur NULL, l’ensemble de la zone du client est défilé.

[in] prcClip

Type : const RECT*

Pointeur vers une structure RECT qui contient les coordonnées du rectangle de découpage. Seuls les bits d’appareil dans le rectangle de découpage sont affectés. Les bits qui défilent de l’extérieur du rectangle vers l’intérieur sont peints ; Les bits qui défilent de l’intérieur du rectangle vers l’extérieur ne sont pas peints. Ce paramètre peut être NULL.

[in] hrgnUpdate

Type : HRGN

Gérez vers la région qui est modifiée pour que la région soit invalidée en faisant défiler. Ce paramètre peut être NULL.

[out] prcUpdate

Type : LPRECT

Pointeur vers une structure RECT qui reçoit les limites du rectangle invalidées par le défilement. Ce paramètre peut être NULL.

[in] flags

Type : UINT

Spécifie les indicateurs qui contrôlent le défilement. Ce paramètre peut être une combinaison des valeurs suivantes.

Valeur Signification
SW_ERASE
Efface la région qui vient d’être invalidée en envoyant un message WM_ERASEBKGND à la fenêtre lorsqu’elle est spécifiée avec l’indicateur SW_INVALIDATE.
SW_INVALIDATE
Invalide la région identifiée par le paramètre hrgnUpdate après le défilement.
SW_SCROLLCHILDREN
Fait défiler toutes les fenêtres enfants qui croisent le rectangle vers lequel pointe le paramètre prcScroll . Les fenêtres enfants défilent selon le nombre de pixels spécifié par les paramètres dx et dy . Le système envoie un message WM_MOVE à toutes les fenêtres enfants qui croisent le rectangle prcScroll , même si elles ne se déplacent pas.
SW_SMOOTHSCROLL
Fait défiler à l’aide d’un défilement lisse. Utilisez la partie HIWORD du paramètre flags pour indiquer combien de temps, en millisecondes, l’opération de défilement lisse doit prendre.

Valeur retournée

Type : int

Si la fonction réussit, la valeur de retour est SIMPLEREGION (région invalidée rectangulaire), COMPLEXREGION (région non corrigée invalidée ; rectangles qui se chevauchent) ou NULLREGION (aucune région invalidée).

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

Remarques

Si les indicateurs SW_INVALIDATE et SW_ERASE ne sont pas spécifiés, ScrollWindowEx n’invalide pas la zone à partir de laquelle le défilement est fait. Si l’un de ces indicateurs est défini, ScrollWindowEx invalide cette zone. La zone n’est pas mise à jour tant que l’application n’appelle pas la fonction UpdateWindow , la fonction RedrawWindow (en spécifiant l’indicateur RDW_UPDATENOW ou RDW_ERASENOW) ou récupère le message WM_PAINT de la file d’attente de l’application.

Si la fenêtre a le style WS_CLIPCHILDREN , les zones renvoyées spécifiées par hrgnUpdate et prcUpdate représentent la zone totale de la fenêtre défilante qui doit être mise à jour, y compris les zones des fenêtres enfants qui doivent être mises à jour.

Si l’indicateur SW_SCROLLCHILDREN est spécifié, le système ne met pas correctement à jour l’écran si une partie d’une fenêtre enfant est défilé. La partie de la fenêtre enfant à défilement qui se trouve en dehors du rectangle source n’est pas effacée et n’est pas correctement redessinée dans sa nouvelle destination. Pour déplacer les fenêtres enfants qui ne se trouvent pas complètement dans le rectangle spécifié par prcScroll, utilisez la fonction DeferWindowPos . Le curseur est repositionné si l’indicateur SW_SCROLLCHILDREN est défini et que le rectangle d’insertion croise le rectangle de défilement.

Toutes les coordonnées d’entrée et de sortie (pour prcScroll, prcClip, prcUpdate et hrgnUpdate) sont déterminées en tant que coordonnées client, que la fenêtre ait le style de classe CS_OWNDC ou CS_CLASSDC . Utilisez les fonctions LPtoDP et DPtoLP pour effectuer une conversion vers et à partir de coordonnées logiques, si nécessaire.

Exemples

Pour obtenir un exemple, consultez Défilement de texte avec le message WM_PAINT.

Spécifications

   
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

DPtoLP

DeferWindowPos

LPtoDP

Autres ressources

RECT

RedrawWindow

UpdateWindow