Low-Level-konsolens utdatafunktioner

Viktigt!

Det här dokumentet beskriver konsolplattformsfunktioner som inte längre ingår i vår ekosystemöversikt. Vi rekommenderar inte att du använder det här innehållet i nya produkter, men vi kommer att fortsätta att stödja befintliga användningar på obestämd tid. Vår föredragna moderna lösning fokuserar på virtuella terminalsekvenser för maximal kompatibilitet i plattformsoberoende scenarier. Du hittar mer information om det här designbeslutet i vår klassiska konsol jämfört med det virtuella terminaldokumentet .

Konsolutdatafunktionerna på låg nivå ger direkt åtkomst till teckencellerna i en skärmbuffert. En uppsättning funktioner läser från eller skriver till på varandra följande celler som börjar på valfri plats i konsolskärmsbufferten. En annan uppsättning funktioner läser från eller skriver till rektangulära cellblock.

Följande funktioner läser från eller skriver till ett angivet antal teckenceller i följd i en skärmbuffert som börjar med en angiven cell.

Funktion Beskrivning
ReadConsoleOutputCharacter Kopierar en sträng med Unicode- eller ANSI-tecken från en skärmbuffert.
WriteConsoleOutputCharacter Skriver en sträng med Unicode- eller ANSI-tecken till en skärmbuffert.
ReadConsoleOutputAttribute Kopierar en sträng med text- och bakgrundsfärgattribut från en skärmbuffert.
WriteConsoleOutputAttribute Skriver en sträng med text- och bakgrundsfärgattribut till en skärmbuffert.
FillConsoleOutputCharacter Skriver ett enda Unicode- eller ANSI-tecken till ett angivet antal celler i följd i en skärmbuffert.
FillConsoleOutputAttribute Skriver en kombination av text- och bakgrundsfärgattribut till ett angivet antal celler i följd i en skärmbuffert.

För alla dessa funktioner, när den sista cellen i en rad påträffas, omsluts läsning eller skrivning till den första cellen i nästa rad. När slutet av den sista raden i konsolskärmsbufferten påträffas tar skrivfunktionerna bort alla oskrivna tecken eller attribut och läsfunktionerna rapporterar antalet tecken eller attribut som faktiskt skrivits.

Följande funktioner läser från eller skriver till rektangulära block med teckenceller på en angiven plats i en skärmbuffert.

Funktion Beskrivning
ReadConsoleOutput Kopierar tecken- och färgdata från ett angivet block med skärmbuffertceller till ett visst block i en målbuffert.
WriteConsoleOutput Skriver tecken- och färgdata till ett angivet block med skärmbuffertceller från ett visst block i en källbuffert.

Dessa funktioner behandlar skärmbuffertar och käll- eller målbuffertar som tvådimensionella matriser med CHAR_INFO strukturer (som innehåller tecken- och färgattributdata för varje cell). Funktionerna anger bredd och höjd, i teckenceller, för käll- eller målbufferten, och pekaren till bufferten behandlas som en pekare till ursprungscellen (0,0) i den tvådimensionella matrisen. Funktionerna använder en SMALL_RECT struktur för att ange vilken rektangel som ska kommas åt i konsolskärmsbufferten, och koordinaterna för den övre vänstra cellen i käll- eller målbufferten avgör platsen för motsvarande rektangel i bufferten.

Dessa funktioner klipper automatiskt den angivna skärmbuffertrektangeln så att den passar inom gränserna för konsolskärmsbufferten. Om rektangeln till exempel anger koordinaterna längst ned till höger som är (kolumn 100, rad 50) och konsolskärmsbufferten bara är 80 kolumner breda, klipps koordinaterna av så att de är (kolumn 79, rad 50). På samma sätt klipps den här justerade rektangeln igen så att den passar inom käll- eller målbuffertens gränser. Skärmbuffertkoordinaterna för den faktiska rektangel som lästes från eller skrevs till anges. Ett exempel som använder dessa funktioner finns i Läsa och skriva block med tecken och attribut.

Bilden visar en ReadConsoleOutput-åtgärd där urklipp sker när blocket läses från konsolskärmsbufferten och igen när blocket kopieras till målbufferten. Funktionen rapporterar den faktiska skärmbuffertrektangeln som den kopierade från.

skärmbuffertfönster med målbuffert