Partager via


Fonction ScrollConsoleScreenBuffer

Important

Ce document décrit les fonctionnalités de la plateforme de la console qui ne font plus partie de la feuille de route de notre écosystème. Nous vous déconseillons d’utiliser ce contenu dans de nouveaux produits, mais nous continuerons à prendre en charge des utilisations existantes pour l’avenir indéterminé. Notre solution moderne préférée se concentre sur les séquences de terminaux virtuels pour une compatibilité maximale dans les scénarios multiplateformes. Vous trouverez plus d’informations sur cette décision de conception dans notre document sur les consoles classiques et les terminaux virtuels.

Déplace un bloc de données dans une mémoire tampon d’écran. Les effets du déplacement peuvent être limités en spécifiant un rectangle d'écrêtage, de sorte que le contenu de la mémoire tampon de l'écran de la console en dehors du rectangle d'écrêtage reste inchangé.

Syntaxe

BOOL WINAPI ScrollConsoleScreenBuffer(
  _In_           HANDLE     hConsoleOutput,
  _In_     const SMALL_RECT *lpScrollRectangle,
  _In_opt_ const SMALL_RECT *lpClipRectangle,
  _In_           COORD      dwDestinationOrigin,
  _In_     const CHAR_INFO  *lpFill
);

Paramètres

hConsoleOutput [entrée]
Un descripteur vers la mémoire tampon de l’écran de la console. Le descripteur doit avoir le droit d’accès GENERIC_READ. Pour plus d’informations, consultez Sécurité de la mémoire tampon et droits d’accès d’une console.

lpScrollRectangle [entrée]
Un pointeur sur une structure SMALL_RECT dont les membres spécifient les coordonnées supérieures gauche et inférieures droite du rectangle de la mémoire tampon de l'écran de la console à déplacer.

lpClipRectangle [entrée, facultatif]
Un pointeur sur une structure SMALL_RECT dont les membres spécifient les coordonnées supérieures gauche et inférieures droite du rectangle de la mémoire tampon de l'écran de la console qui est affecté par le défilement. Ce pointeur peut être NUL.

dwDestinationOrigin [entrée]
Une structure COORD qui spécifie le coin supérieur gauche du nouvel emplacement du contenu lpScrollRectangle, en caractères.

lpFill [entrée]
Un pointeur vers une structure CHAR_INFO qui spécifie les attributs de caractère et de couleur à utiliser pour remplir les cellules dans l’intersection de lpScrollRectangle et lpClipRectangle qui sont restées vides à la suite du déplacement.

Valeur renvoyée

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.

Notes

La fonction ScrollConsoleScreenBuffer copie le contenu d’une région rectangulaire d’une mémoire tampon d’écran, spécifiée par le paramètre lpScrollRectangle, dans une autre zone de la mémoire tampon de l’écran de la console. Le rectangle cible a les mêmes dimensions que le rectangle lpScrollRectangle, avec son coin supérieur gauche aux coordonnées spécifiées par le paramètre dwDestinationOrigin. Les parties de lpScrollRectangle qui ne se chevauchent pas avec le rectangle cible sont remplies avec les attributs de caractère et de couleur spécifiés par le paramètre lpFill.

Le rectangle d'écrêtage s'applique aux modifications apportées à la fois au rectangle lpScrollRectangle et au rectangle cible. Par exemple, si le rectangle d'écrêtage n'inclut pas une région qui aurait été remplie par le contenu du paramètre lpFill, le contenu original de la région reste inchangé.

Si les dimensions de la région de défilement ou de la région cible dépassent celles de la mémoire tampon de l'écran de la console, elles sont écrêtées. Par exemple, si lpScrollRectangle est la région contenue par (0,0) et (19,19) et dwDestinationOrigin est (10,15), le rectangle cible est la région contenue par (10,15) et (29,34). Toutefois, si la mémoire tampon de l'écran de la console a une largeur de 50 caractères et une hauteur de 30 caractères, le rectangle cible est réduit à (10,15) et (29,29). Les modifications apportées au tampon de l'écran de la console sont également écrêtées conformément à lpClipRectangle, si le paramètre spécifie une structure SMALL_RECT. Si le rectangle de découpage est spécifié comme (0,0) et (49 19), seules les modifications qui se produisent dans cette région de la mémoire tampon de l’écran de la console sont effectuées.

Cette fonction utilise des caractères Unicode ou des caractères 8 bits de la page de codes actuelle de la console. Par défaut, la page de codes de la console est initialement définie sur la page de codes OEM du système. Pour changer la page de codes de la console, utilisez les fonctions SetConsoleCP ou SetConsoleOutputCP. Les consommateurs existants peuvent également utiliser les commandes chcp ou mode con cp select=, mais ce n’est pas recommandé pour un nouveau développement.

Conseil

Cette API n’est pas recommandée et n’a pas d’équivalent de terminal virtuel. L’utilisation peut être approximative avec desmarges de défilement pour corriger une zone de l’écran, le positionnement du curseur pour définir la position active en dehors de la région et les lignes de nouvelle ligne pour forcer le texte à se déplacer. L’espace restant peut être rempli en déplaçant le curseur, en définissant des attributs graphiques et en écrivant du texte normal.

Exemples

Pour obtenir un exemple, consultez la section Défilement du contenu d’une mémoire tampon d’écran.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête ConsoleApi2.h (via WinCon.h, include Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll
Noms Unicode et ANSI ScrollConsoleScreenBufferW (Unicode) et ScrollConsoleScreenBufferA (ANSI)

Voir aussi

CHAR_INFO

Fonctions de console

COORD

Défilement de la mémoire tampon d’écran

SetConsoleCP

SetConsoleOutputCP

SetConsoleWindowInfo

SMALL_RECT