Udostępnij przez


Rozmiar buforu okna i ekranu

Rozmiar buforu ekranu jest wyrażony w kategoriach siatki współrzędnych na podstawie komórek znaków. Szerokość to liczba komórek znaków w każdym wierszu, a wysokość to liczba wierszy. Skojarzony z każdym buforem ekranu to okno, które określa rozmiar i lokalizację prostokątnej części buforu ekranu konsoli wyświetlanego w oknie konsoli. Okno buforu ekranu jest definiowane przez określenie współrzędnych komórek znaków w lewym górnym i prawym dolnym rogu prostokąta okna.

Uwaga / Notatka

W świecie wirtualnych sekwencji terminali rozmiar okna i rozmiar buforu ekranu są stałe na tę samą wartość. Terminal obsługuje każdy region przewijania zwrotnego, który byłby odpowiednikiem konsoli z rozmiarem buforu ekranu większym niż jego rozmiar okna. Ta zawartość należy do terminalu i zazwyczaj nie jest już częścią obszaru adresowalnego. Aby uzyskać więcej informacji, zobacz porównanie klasycznych funkcji konsoli w porównaniu z sekwencjami terminali wirtualnych.

Bufor ekranu może mieć dowolny rozmiar, ograniczony tylko przez dostępną pamięć. Wymiary okna buforu ekranu nie mogą przekraczać odpowiednich wymiarów buforu ekranu konsoli lub maksymalnego okna, które można zmieścić na ekranie na podstawie bieżącego rozmiaru czcionki (kontrolowane wyłącznie przez użytkownika).

Funkcja GetConsoleScreenBufferInfo zwraca następujące informacje o buforze ekranu i jego oknie:

  • Bieżący rozmiar buforu ekranu konsoli
  • Bieżąca lokalizacja okna
  • Maksymalny rozmiar okna, biorąc pod uwagę bieżący rozmiar buforu ekranu, bieżący rozmiar czcionki i rozmiar ekranu

Funkcja GetLargestConsoleWindowSize zwraca maksymalny rozmiar okna konsoli na podstawie bieżących rozmiarów czcionki i ekranu. Ten rozmiar różni się od maksymalnego rozmiaru okna zwróconego przez polecenie GetConsoleScreenBufferInfo , że rozmiar buforu ekranu konsoli jest ignorowany.

Aby zmienić rozmiar buforu ekranu, użyj funkcji SetConsoleScreenBufferSize . Ta funkcja kończy się niepowodzeniem, jeśli jeden z wymiarów określonego rozmiaru jest mniejszy niż odpowiedni wymiar okna konsoli.

Aby zmienić rozmiar lub lokalizację okna buforu ekranu, użyj funkcji SetConsoleWindowInfo . Ta funkcja kończy się niepowodzeniem, jeśli określone współrzędne rogu okna przekraczają limity buforu ekranu konsoli lub ekranu. Zmiana rozmiaru okna aktywnego buforu ekranu zmienia rozmiar okna konsoli wyświetlanego na ekranie.

Proces może zmienić tryb wejściowy konsoli, aby włączyć wprowadzanie okien, aby proces mógł odbierać dane wejściowe, gdy użytkownik zmieni rozmiar buforu ekranu konsoli. Jeśli aplikacja włącza dane wejściowe okna, może użyć polecenia GetConsoleScreenBufferInfo , aby pobrać rozmiar buforu okna i ekranu podczas uruchamiania. Te informacje mogą następnie służyć do określenia sposobu wyświetlania danych w oknie. Jeśli użytkownik zmieni rozmiar buforu ekranu konsoli, aplikacja może odpowiedzieć, zmieniając sposób wyświetlania danych. Na przykład aplikacja może dostosować sposób zawijania tekstu na końcu wiersza, jeśli liczba znaków na wiersz zmieni się. Jeśli aplikacja nie włącza danych wejściowych okna, musi użyć dziedziczonego okna i rozmiaru buforu ekranu lub ustawić go na żądany rozmiar podczas uruchamiania i przywrócić odziedziczone rozmiary po zakończeniu. Aby uzyskać dodatkowe informacje na temat trybu wprowadzania okien, zobacz tryby konsoliLow-Level.