Scroll-Konsolen-Bildschirm-Puffer-Funktion

Wichtig

In diesem Dokument werden Konsolenplattformfunktionen beschrieben, die nicht mehr Teil unserer Ökosystem-Roadmap sind. Wir empfehlen nicht, diesen Inhalt in neuen Produkten zu verwenden, aber wir werden weiterhin vorhandene Nutzungen für die unbegrenzte Zukunft unterstützen. Unsere bevorzugte moderne Lösung konzentriert sich auf virtuelle Terminalsequenzen für maximale Kompatibilität in plattformübergreifenden Szenarien. Weitere Informationen zu dieser Designentscheidung finden Sie in unserem klassischen Konsolendokument im Vergleich zum virtuellen Terminal .

Verschiebt einen Datenblock in einem Bildschirmpuffer. Die Auswirkungen der Verschiebung können eingeschränkt werden, indem sie ein Beschneidungsrechteck angeben, sodass der Inhalt des Konsolenbildschirmpuffers außerhalb des Beschneidungsrechtecks unverändert bleibt.

Syntax

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
);

Parameter

hConsoleOutput [in]
Ein Handle für den Konsolenbildschirm-Puffer. Das Handle muss über das Zugriffsrecht GENERIC_READ verfügen. Weitere Informationen finden Sie unter Sicherheit und Zugriffsrechte für Konsolenpuffer.

lpScrollRectangle [in]
Ein Zeiger auf eine SMALL_RECT-Struktur , deren Members die oberen linken und unteren rechten Koordinaten des zu verschiebenden Konsolenbildschirmpufferrechtecks angeben.

lpClipRectangle [in, optional]
Ein Zeiger auf eine SMALL_RECT Struktur, deren Members die oberen linken und unteren rechten Koordinaten des Konsolenbildschirmpufferrechtecks angeben, das von der Bildlauffunktion betroffen ist. Dieser Zeiger kann NULL sein.

dwDestinationOrigin [in]
Eine COORD-Struktur , die die obere linke Ecke der neuen Position des lpScrollRectangle-Inhalts in Zeichen angibt.

lpFill [in]
Ein Zeiger auf eine CHAR_INFO Struktur, die die Zeichen- und Farbattribute angibt, die beim Ausfüllen der Zellen innerhalb der Schnittmenge von lpScrollRectangle und lpClipRectangle verwendet werden sollen, die aufgrund der Verschiebung leer gelassen wurden.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

ScrollKonsolenBildschirmPuffer kopiert den Inhalt eines rechteckigen Bereichs eines Bildschirmpuffers, der durch den Parameter lpScrollRectangle angegeben wird, in einen anderen Bereich des Konsolenbildschirmpuffers. Das Zielrechteck hat die gleichen Dimensionen wie das lpScrollRectangle-Rechteck mit der oberen linken Ecke an den Koordinaten, die durch den DwDestinationOrigin-Parameter angegeben werden. Diese Teile von lpScrollRectangle , die sich nicht mit dem Zielrechteck überlappen, werden mit den durch den lpFill-Parameter angegebenen Zeichen- und Farbattributen gefüllt.

Das Beschneidungsrechteck gilt für Änderungen, die sowohl im lpScrollRectangle-Rechteck als auch im Zielrechteck vorgenommen wurden. Wenn das Beschneidungsrechteck beispielsweise keinen Bereich enthält, der durch den Inhalt von lpFill gefüllt worden wäre, bleiben die ursprünglichen Inhalte des Bereichs unverändert.

Wenn die Bildlauf- oder Zielbereiche über die Abmessungen des Konsolenbildschirmpuffers hinausgehen, werden sie abgeschnitten. Wenn "lpScrollRectangle" beispielsweise die Region ist, die in (0,0) und (19,19) und dwDestinationOrigin (10,15) enthalten ist, ist das Zielrechteck die Region, die in (10,15) und (29,34) enthalten ist. Wenn der Konsolenbildschirmpuffer jedoch 50 Zeichen breit und 30 Zeichen hoch ist, wird das Zielrechteck auf (10,15) und (29,29) abgeschnitten. Änderungen am Konsolenbildschirmpuffer werden auch entsprechend lpClipRectangle abgeschnitten, wenn der Parameter eine SMALL_RECT Struktur angibt. Wenn das Beschneidungsrechteck als (0,0) und (49.19) angegeben ist, werden nur die Änderungen vorgenommen, die in diesem Bereich des Konsolenbildschirmpuffers auftreten.

Diese Funktion verwendet entweder Unicodezeichen oder 8-Bit-Zeichen aus der aktuellen Codepage der Konsole. Die Codepage der Konsole wird zunächst standardmäßig auf die OEM-Codepage des Systems festgelegt. Um die Codepage der Konsole zu ändern, verwenden Sie die Funktionen SetConsoleCP oder SetConsoleOutputCP. Ältere Consumer können auch die chcp oder mode con cp select=-Befehle verwenden, aber sie werden für neue Entwicklungen nicht empfohlen.

Tipp

Diese API wird nicht empfohlen und verfügt nicht über eine virtuelle Terminalentsprechung. Die Verwendung kann mit Bildlaufrändern angenähert werden, um einen Bereich des Bildschirms zu fixieren, die Cursorpositionfestzulegen, um die aktive Position außerhalb des Bereichs festzulegen, und neue Linien, um den Text dazu zu veranlassen sich zu bewegen. Der verbleibende Raum kann gefüllt werden, indem der Cursor verschoben wird, wobei grafische Attribute festgelegt werden und normaler Text geschrieben wird.

Beispiele

Ein Beispiel finden Sie unter "Scrollen des Inhalts eines Bildschirmpuffers".

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Header ConsoleApi2.h (über WinCon.h, Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll
Unicode- und ANSI-Namen ScrollConsoleScreenBufferW (Unicode) und ScrollConsoleScreenBufferA (ANSI)

Siehe auch

CHAR_INFO

Konsolenfunktionen

COORD

Scrollen in einem Bildschirmpuffer

SetConsoleCP

SetConsoleOutputCP

SetConsoleWindowInfo

SMALL_RECT