Zmiana rozmiarów okna i bufora konsoli

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 5151 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)
Propozycje książek
tytuł: C++  Zbiór zadań z rozwiązaniami autor: Tomasz Jaśniewski

Tytuł:

C++ Zbiór zadań z rozwiązaniami

Autor:

Tomasz Jaśniewski

tytuł: Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++ autor: Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla

Tytuł:

Mikrokontrolery dla hobbystów. Projekty DIY w języku C i C++

Autor:

Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla

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

Tytuł:

Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów

Autor:

Adrian Ostrowski, Piotr Gaczkowski

tytuł: Wprowadzenie do C++ autor: Michał Matlak

Tytuł:

Wprowadzenie do C++

Autor:

Michał Matlak

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

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ł:

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ł:

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ł:

C++ dla bystrzaków. Wydanie VII

Autor:

Stephen R. Davis

tytuł: Tablice informatyczne. Podstawy C++ autor: Radosław Sokół

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ł:

Opus magnum C++11. Programowanie w języku C++ (komplet)

Autor:

Jerzy Grębosz

W związku z tym, że firma Helion nie wywiązuje się z swoich zobowiązań naliczania prowizji za każdą zakupioną książkę a kontakt z ową frmą jest nie możliwy autor strony zmuszony został do zablokowania linkowania książek. Za wszelkie niedogodności z tym związane z góry przepraszam i obiecuję włączenie linkowania gdy tylko sprawa zostanie wyjaśniona