Windows API
Die Fenstergröße bei Windows Konsolenanwendungen ist u.U. etwas knapp bemessen.
Vor allem die Breite lässt sich vom Anwender nicht beliebig anpassen.
Dieser Artikel beschreibt, wie die Größe der Konsole angepasst werden kann.
Zunächst ist zu sagen, dass die Konsole zwei verschiedene Größen hat.
Die ScreenBuffer Größe gibt den Bereich innerhalb des Fensters an.
Vor allem in vertikaler Richtung kommt diesem Wert hinsichtlich des scrollbaren
Bereichs besondere Bedeutung zu. Die tatsächliche Fenstergröße ist immer kleiner
als die ScreenBufferSize. Die folgende Funktion prüft zunächst die aktuellen
Daten der Konsole und passt sie anschließend an:
#include "windows.h" void ResizeConsole(short x, short y) { HANDLE hStdout; hStdout = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO Info; SMALL_RECT rcWindow; // Aktuelle Fenster- und Buffergröße GetConsoleScreenBufferInfo(hStdout, &Info); // Neue Fenstergröße rcWindow = Info.srWindow; rcWindow.Right = x; rcWindow.Bottom = y; // Neue Buffergröße, wenn nötig COORD size = Info.dwSize; if (size.X < x) size.X = x+1; if (size.Y < y) size.Y = y+1; SetConsoleScreenBufferSize(hStdout, size); SetConsoleWindowInfo( hStdout, TRUE, &rcWindow); }
Sende ein Kommentar, Frage, Korrekturen, Beschimpfungen...
doxapp c++ Zur Übersicht home