Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Ce document décrit les fonctionnalités de plateforme console qui ne font plus partie de notre feuille de route de l’écosystème. Nous vous déconseillons d’utiliser ce contenu dans de nouveaux produits, mais nous continuerons à prendre en charge les utilisations existantes pour l’avenir indéfini. Notre solution moderne préférée se concentre sur les séquences de terminal virtuel pour une compatibilité maximale dans les scénarios multiplateformes. Vous trouverez plus d’informations sur cette décision de conception dans notre document de console classique et de terminal virtuel .
Les fonctions de sortie de console de bas niveau fournissent un accès direct aux cellules de caractères d’une mémoire tampon d’écran. Un ensemble de fonctions lit ou écrit dans des cellules consécutives à partir de n’importe quel emplacement dans la mémoire tampon de l’écran de la console. Un autre ensemble de fonctions lit ou écrit dans des blocs rectangulaires de cellules.
Les fonctions suivantes lisent ou écrivent dans un nombre spécifié de cellules de caractères consécutives dans une mémoire tampon d’écran, en commençant par une cellule spécifiée.
| Fonction | Descriptif |
|---|---|
| ReadConsoleOutputCharacter | Copie une chaîne de caractères Unicode ou ANSI à partir d’une mémoire tampon d’écran. |
| WriteConsoleOutputCharacter | Écrit une chaîne de caractères Unicode ou ANSI dans une mémoire tampon d’écran. |
| ReadConsoleOutputAttribute | Copie une chaîne d’attributs de couleur de texte et d’arrière-plan à partir d’une mémoire tampon d’écran. |
| WriteConsoleOutputAttribute | Écrit une chaîne d’attributs de couleur de texte et d’arrière-plan dans une mémoire tampon d’écran. |
| FillConsoleOutputCharacter | Écrit un caractère Unicode ou ANSI unique dans un nombre spécifié de cellules consécutives dans une mémoire tampon d’écran. |
| FillConsoleOutputAttribute | Écrit une combinaison d’attributs de couleur de texte et d’arrière-plan dans un nombre spécifié de cellules consécutives dans une mémoire tampon d’écran. |
Pour toutes ces fonctions, lorsque la dernière cellule d’une ligne est rencontrée, la lecture ou l’écriture s’encapsule dans la première cellule de la ligne suivante. Lorsque la fin de la dernière ligne de la mémoire tampon de l’écran de la console est rencontrée, les fonctions d’écriture ignorent tous les caractères ou attributs non écrits, et les fonctions de lecture signalent le nombre de caractères ou d’attributs réellement écrits.
Les fonctions suivantes lisent ou écrivent dans des blocs rectangulaires de cellules de caractères à un emplacement spécifié dans une mémoire tampon d’écran.
| Fonction | Descriptif |
|---|---|
| ReadConsoleOutput | Copie les données de caractères et de couleurs d’un bloc spécifié de cellules de mémoire tampon d’écran dans un bloc donné dans une mémoire tampon de destination. |
| WriteConsoleOutput | Écrit des données de caractères et de couleurs dans un bloc spécifié de cellules de mémoire tampon d’écran à partir d’un bloc donné dans une mémoire tampon source. |
Ces fonctions traitent les mémoires tampons d’écran et les mémoires tampons source ou de destination comme des tableaux bidimensionnels de structures CHAR_INFO (contenant des données d’attribut de caractère et de couleur pour chaque cellule). Les fonctions spécifient la largeur et la hauteur, dans les cellules de caractères, de la mémoire tampon source ou de destination, et le pointeur vers la mémoire tampon est traité comme un pointeur vers la cellule d’origine (0,0) du tableau à deux dimensions. Les fonctions utilisent une structure SMALL_RECT pour spécifier le rectangle auquel accéder dans la mémoire tampon de l’écran de console et les coordonnées de la cellule supérieure gauche dans la mémoire tampon source ou de destination déterminent l’emplacement du rectangle correspondant dans cette mémoire tampon.
Ces fonctions découpent automatiquement le rectangle de mémoire tampon d’écran spécifié pour s’adapter aux limites de la mémoire tampon d’écran de la console. Par exemple, si le rectangle spécifie des coordonnées inférieures à droite (colonne 100, ligne 50) et que la mémoire tampon de l’écran de la console est de seulement 80 colonnes, les coordonnées sont clippées afin qu’elles soient (colonne 79, ligne 50). De même, ce rectangle ajusté est à nouveau clippé pour s’adapter aux limites de la mémoire tampon source ou de destination. Les coordonnées de la mémoire tampon d’écran du rectangle réel lu ou écrit sont spécifiées. Pour obtenir un exemple qui utilise ces fonctions, consultez La lecture et l’écriture de blocs de caractères et d’attributs.
L’illustration montre une opération ReadConsoleOutput où le découpage se produit lorsque le bloc est lu à partir de la mémoire tampon de l’écran de la console, puis à nouveau lorsque le bloc est copié dans la mémoire tampon de destination. La fonction signale le rectangle de mémoire tampon d’écran réel à partir duquel il a été copié.