Condividi tramite


Funzioni di output della console di basso livello

Importante

Questo documento descrive le funzionalità della piattaforma della console che non fanno più parte della roadmap dell'ecosistema. Non è consigliabile usare questo contenuto nei nuovi prodotti, ma continueremo a supportare gli utilizzi esistenti per il futuro indefinito. La soluzione moderna preferita è incentrata sulle sequenze di terminale virtuale per garantire la massima compatibilità negli scenari multipiattaforma. Per altre informazioni su questa decisione di progettazione, vedere il documento relativo alla console classica e al terminale virtuale.

Le funzioni di output della console di basso livello forniscono accesso diretto alle celle di caratteri di un buffer dello schermo. Un set di funzioni legge o scrive in celle consecutive che iniziano in qualsiasi posizione nel buffer dello schermo della console. Un altro set di funzioni legge o scrive in blocchi rettangolari di celle.

Le funzioni seguenti leggono o scrivono in un numero specificato di celle di caratteri consecutive in un buffer dello schermo, a partire da una cella specificata.

Funzione Descrizione
ReadConsoleOutputCharacter Copia una stringa di caratteri Unicode o ANSI da un buffer dello schermo.
WriteConsoleOutputCharacter Scrive una stringa di caratteri Unicode o ANSI in un buffer dello schermo.
ReadConsoleOutputAttribute Copia una stringa di attributi di colore di testo e di sfondo da un buffer dello schermo.
WriteConsoleOutputAttribute Scrive una stringa di attributi di colore di testo e sfondo in un buffer dello schermo.
FillConsoleOutputCharacter Scrive un singolo carattere Unicode o ANSI in un numero specificato di celle consecutive in un buffer dello schermo.
FillConsoleOutputAttribute Scrive una combinazione di attributi colore di testo e sfondo in un numero specificato di celle consecutive in un buffer dello schermo.

Per tutte queste funzioni, quando viene rilevata l'ultima cella di una riga, la lettura o la scrittura esegue il wrapping nella prima cella della riga successiva. Quando viene rilevata la fine dell'ultima riga del buffer dello schermo della console, le funzioni di scrittura eliminano tutti i caratteri o gli attributi non scritti e le funzioni di lettura segnalano il numero di caratteri o attributi effettivamente scritti.

Le funzioni seguenti leggono o scrivono in blocchi rettangolari di celle di caratteri in una posizione specificata in un buffer dello schermo.

Funzione Descrizione
ReadConsoleOutput Copia i dati di caratteri e colori da un blocco specificato di celle del buffer dello schermo in un determinato blocco in un buffer di destinazione.
WriteConsoleOutput Scrive dati di tipo carattere e colore in un blocco specificato di celle del buffer dello schermo da un determinato blocco in un buffer di origine.

Queste funzioni considerano buffer dello schermo e buffer di origine o di destinazione come matrici bidimensionali di strutture CHAR_INFO (contenenti dati di attributi carattere e colore per ogni cella). Le funzioni specificano la larghezza e l'altezza, nelle celle di caratteri, del buffer di origine o di destinazione e il puntatore al buffer viene considerato un puntatore alla cella di origine (0,0) della matrice bidimensionale. Le funzioni usano una struttura SMALL_RECT per specificare quale rettangolo accedere nel buffer dello schermo della console e le coordinate della cella superiore sinistra nel buffer di origine o di destinazione determinano la posizione del rettangolo corrispondente in tale buffer.

Queste funzioni ritagliano automaticamente il rettangolo del buffer dello schermo specificato per adattarsi entro i limiti del buffer dello schermo della console. Ad esempio, se il rettangolo specifica le coordinate inferiori a destra (colonna 100, riga 50) e il buffer dello schermo della console è largo solo 80 colonne, le coordinate vengono ritagliate in modo che siano (colonna 79, riga 50). Analogamente, questo rettangolo regolato viene nuovamente ritagliato per adattarsi entro i limiti del buffer di origine o di destinazione. Vengono specificate le coordinate del buffer dello schermo del rettangolo effettivo da cui è stata letta o scritta. Per un esempio che usa queste funzioni, vedere Lettura e scrittura di blocchi di caratteri e attributi.

La figura mostra un'operazione ReadConsoleOutput in cui si verifica il ritaglio quando il blocco viene letto dal buffer dello schermo della console e di nuovo quando il blocco viene copiato nel buffer di destinazione. La funzione segnala il rettangolo effettivo del buffer dello schermo da cui è stato copiato.

screen buffer window with destination buffer