Zmiana rozmiarów okna i bufora konsoli
Stronę tą wyświetlono już: 3869 razy
Rozmiar okna konsoli jest liczony dość nietypowo w szerokościach i wysokościach pojedynczego znaku. Dzięki temu można ustawić poprawnie szerokość i wysokość dla bufora pamięci i dla samego okna. Niestety poniższe rozwiązanie przeznaczone jest pod systemy Windows i wymaga ono wykorzystania pliku nagłówkowego windows.h. Oto przykład, jak można zmienić rozmiar bufora pamięci i okna za jednym razem:
- HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); // uchwyt standardowego wyjścia
- COORD c2; // struktura potrzebna do ustawienia rozmiarów bufora pamięci
- c2.X = 120; // szerokość na 120 szerokości znaków
- c2.Y = 40; // wysokość na 40 wysokości znaków
- SetConsoleScreenBufferSize(handle, c2); // ustawia rozmiar bufora (wyświetlanego tekstu)
- SMALL_RECT sr; // struktura wykorzystywana do ustawienia rozmiaru okna
- sr.Left = 0; // na zero
- sr.Top = 0; // na zero
- sr.Right = c2.X-1; // szerokość o 1 mniejsza od bufora
- sr.Bottom = c2.Y-1; // wysokość o 1 mniejsza od bufora
- SetConsoleWindowInfo(handle,true,&sr); // ustawia rozmiar okna (jednostka to szerokość i wysokość pojedynczego znaku)
Możliwe jest również ustawienie okna zmaksymalizowanego z jednoczesnym ustawieniem maksymalnych dopasowanych do bieżącego ustawienia monitora rozmiarów okna. Oto przykład:
- HWND hwnd = GetConsoleWindow(); // pobieranie uchwytu okna konsoli
- ShowWindow(hwnd, SW_SHOWMAXIMIZED); // maksymalizacja okna konsoli
- HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
- COORD c2 = GetLargestConsoleWindowSize(GetStdHandle(STD_OUTPUT_HANDLE)); // zwracanie maksymalnych rozmiarów
- SetConsoleScreenBufferSize(handle, c2); // ustawiasz rozmiar bufora
- SMALL_RECT sr;
- sr.Left = 0;
- sr.Top = 0;
- sr.Right = c2.X-1;
- sr.Bottom = c2.Y-1;
- SetConsoleWindowInfo(handle,true,&sr); // ustawiasz rozmiar okna (jednostka to szerokość i wysokość pojedynczego znaku)

Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski

Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz

Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha

Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams

Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis

Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół

Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz

Tytuł:
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Autor:
Adrian Kaehler, Gary Bradski

Tytuł:
C++ w 24 godziny. Wydanie VI
Autor:
Rogers Cadenhead, Jesse Liberty

Tytuł:
C++ Optymalizacja kodu. Sprawdzone techniki zwiększania wydajności
Autor:
Guntheroth Kurt