Puffergröße von Fenster und Bildschirm

Die Größe eines Bildschirmpuffers wird in Bezug auf ein Koordinatenraster basierend auf Zeichenzellen ausgedrückt. Die Breite ist die Anzahl der Zeichenzellen in jeder Zeile, und die Höhe ist die Anzahl der Zeilen. Jedem Bildschirmpuffer ist ein Fenster zugeordnet, das die Größe und Position des rechteckigen Teils des Konsolenbildschirmpuffers bestimmt, der im Konsolenfenster angezeigt wird. Das Fenster eines Bildschirmpuffers wird durch Angeben der Zeichenzellenkoordinaten der oberen linken und unteren rechten Zellen des Rechtecks des Fensters definiert.

Hinweis

In den virtuellen Terminalsequenzen werden die Größe des Fensters und die Größe des Bildschirmpuffers auf denselben Wert festgelegt. Das Terminal behandelt alle Scrollback-Regionen, die einer Konsole mit einer Bildschirmpuffergröße entsprechen würden, die größer als die Fenstergröße ist. Dieser Inhalt gehört zum Terminal und ist in der Regel nicht mehr Teil des adressierbaren Bereichs. Weitere Informationen finden Sie in unserem Vergleich der klassischen Konsolenfunktionen im Vergleich zu virtuellen Terminalsequenzen.

Ein Bildschirmpuffer kann beliebig groß sein und wird nur durch den verfügbaren Speicher begrenzt. Die Abmessungen des Fensters eines Bildschirmpuffers können die entsprechenden Abmessungen des Konsolenbildschirmpuffers oder des maximalen Fensters, das basierend auf dem aktuellen Schriftgrad (ausschließlich vom Benutzer gesteuert) auf dem Bildschirm passen, nicht überschreiten.

Die GetConsoleScreenBufferInfo-Funktion gibt die folgenden Informationen zu einem Bildschirmpuffer und seinem Fenster zurück:

  • Die aktuelle Größe des Bildschirmpuffers der Konsole.
  • Die aktuelle Position des Fensters
  • Die maximale Größe des Fensters aufgrund der aktuellen Bildschirmpuffergröße, des aktuellen Schriftgrads und des Bildschirmformats

Die GetLargestConsoleWindowSize-Funktion gibt die maximale Größe des Fensters einer Konsole basierend auf der aktuellen Schriftart und den Bildschirmgrößen zurück. Diese Größe unterscheidet sich von der von GetConsoleScreenBufferInfo zurückgegebenen maximalen Fenstergröße, da die Größe des Konsolenbildschirmpuffers ignoriert wird.

Verwenden Sie die SetConsoleScreenBufferSize-Funktion, um die Größe eines Bildschirmpuffers zu ändern. Diese Funktion schlägt fehl, wenn eine der Dimensionen der angegebenen Größe kleiner als die entsprechende Dimension des Konsolenfensters ist.

Verwenden Sie die SetConsoleWindowInfo-Funktion, um die Größe oder Position des Fensters eines Bildschirmpuffers zu ändern. Diese Funktion schlägt fehl, wenn die angegebenen Fenstereckekoordinaten die Grenzen des Konsolenbildschirmpuffers oder des Bildschirms überschreiten. Wenn Sie die Fenstergröße des aktiven Bildschirmpuffers ändern, ändert sich die Größe des Konsolenfensters, das auf dem Bildschirm angezeigt wird.

Ein Prozess kann den Eingabemodus der Konsole ändern, um die Fenstereingabe zu aktivieren, sodass der Prozess Eingaben empfangen kann, wenn der Benutzer die Größe des Konsolenbildschirmpuffers ändert. Wenn eine Anwendung Fenstereingaben aktiviert, kann sie GetConsoleScreenBufferInfo verwenden, um die Fenster- und Bildschirmpuffergröße beim Start abzurufen. Diese Informationen können dann verwendet werden, um zu bestimmen, wie Daten im Fenster angezeigt werden. Wenn der Benutzer die Größe des Konsolenbildschirmpuffers ändert, kann die Anwendung reagieren, indem die Anzeige von Daten geändert wird. Beispielsweise kann eine Anwendung die Art und Weise anpassen, wie Text am Ende der Zeile umgebrochen wird, wenn sich die Anzahl der Zeichen pro Zeile ändert. Wenn eine Anwendung die Fenstereingabe nicht aktiviert, muss sie entweder die geerbten Fenster- und Bildschirmpuffergrößen verwenden oder sie beim Start auf die gewünschte Größe festlegen und die geerbten Größen beim Beenden wiederherstellen. Weitere Informationen zum Fenstereingabemodus finden Sie unter Konsolenmodi auf niedriger Ebene.