Partager via


Taille de la mémoire tampon de fenêtre et d’écran

La taille d’une mémoire tampon d’écran est exprimée en termes de grille de coordonnées basée sur des cellules de caractères. La largeur est le nombre de cellules de caractères de chaque ligne, et la hauteur est le nombre de lignes. À chaque mémoire tampon d’écran est associée une fenêtre qui détermine la taille et l’emplacement de la zone rectangulaire de la mémoire tampon d’écran de console qui s’affiche dans la fenêtre de la console. La fenêtre d’une mémoire tampon d’écran est définie en spécifiant les coordonnées de cellule de caractère des cellules supérieure gauche et inférieure droite du rectangle de la fenêtre.

Remarque

Dans le monde des séquences de terminal virtuel, la taille de la fenêtre et la taille de la mémoire tampon d’écran sont fixées à la même valeur. Le terminal gère toute région de défilement qui serait l’équivalent d’une console avec une taille de mémoire tampon d’écran supérieure à sa taille de fenêtre. Ce contenu appartient au terminal et ne fait généralement plus partie de la zone adressable. Pour plus d’informations, consultez notre comparaison des fonctions de console classiques par rapport aux séquences de terminal virtuel.

Une mémoire tampon d’écran peut être de n’importe quelle taille, la seule limite étant la mémoire disponible. Les dimensions de la fenêtre d’une mémoire tampon d’écran ne peuvent pas dépasser les dimensions correspondantes de la mémoire tampon d’écran de la console ou de la fenêtre maximale qui peut s’adapter à l’écran en fonction de la taille de police actuelle (contrôlée exclusivement par l’utilisateur).

La fonction GetConsoleScreenBufferInfo retourne les informations suivantes sur une mémoire tampon d’écran et sa fenêtre :

  • Taille actuelle de la mémoire tampon d’écran de console
  • Emplacement actuel de la fenêtre
  • Taille maximale de la fenêtre en fonction de la taille actuelle de la mémoire tampon d’écran, de la taille de police actuelle et de la taille de l’écran

La fonction GetLargestConsoleWindowSize retourne la taille maximale de la fenêtre d’une console en fonction des tailles de police et d’écran actuelles. Cette taille diffère de la taille maximale de la fenêtre retournée par GetConsoleScreenBufferInfo dans laquelle la taille de la mémoire tampon de l’écran de la console est ignorée.

Pour modifier la taille d’une mémoire tampon d’écran, utilisez la fonction SetConsoleScreenBufferSize. Cette fonction échoue si l’une ou l’autre dimension de la taille spécifiée est inférieure à la dimension correspondante de la fenêtre de la console.

Pour modifier la taille ou l’emplacement de la fenêtre d’une mémoire tampon d’écran, utilisez la fonction SetConsoleWindowInfo. Cette fonction échoue si les coordonnées de l’angle de fenêtre spécifié dépassent les limites de la mémoire tampon d’écran de la console ou de l’écran. La modification de la taille de la fenêtre de la mémoire tampon d’écran active modifie la taille de la fenêtre de console affichée sur l’écran.

Un processus peut modifier le mode d’entrée de sa console pour activer l’entrée de fenêtre afin que le processus puisse recevoir une entrée lorsque l’utilisateur modifie la taille de la mémoire tampon de l’écran de la console. Si une application active l’entrée de fenêtre, elle peut utiliser GetConsoleScreenBufferInfo pour récupérer la taille de la fenêtre et de la mémoire tampon d’écran au démarrage. Ces informations peuvent ensuite être utilisées pour déterminer la façon dont les données sont affichées dans la fenêtre. Si l’utilisateur modifie la taille de la mémoire tampon de l’écran de la console, l’application peut répondre en modifiant la façon dont les données sont affichées. Par exemple, une application peut ajuster la façon dont le texte est ajusté à la fin de la ligne si le nombre de caractères par ligne change. Si une application n’active pas l’entrée de fenêtre, elle doit utiliser les tailles de mémoire tampon héritées de la fenêtre et de l’écran, ou les définir à la taille souhaitée pendant le démarrage et restaurer les tailles héritées à la sortie. Pour plus d’informations sur le mode d’entrée de fenêtre, consultez Modes de console de bas niveau.