Składnia
#include <windows.h>
BOOL WINAPI ScrollConsoleScreenBuffer(
HANDLE hConsoleOutput,
const SMALL_RECT * lpScrollRectangle,
const SMALL_RECT * lpClipRectangle,
COORD dwDestinationOrigin,
const CHAR_INFO * lpFill );
Argumenty
Zwracana wartość
Jeśli nie wystąpią błędy, zwracana wartość jest niezerowa, inaczej 0. Aby uzyskać szczegółowe informacje o błędzie, wywołaj funkcję
GetLastError.
Dodatkowe informacje
Efekt przesunięcia może być ograniczony przez określony prostokąt, więc zawartość bufora ekranu konsoli na zewnątrz prostokąta pozostanie niezmieniona. Funkcja kopiuje zawartość prostokątnego obszaru bufora ekranu określonego przez argument
lpScrollRectangle do innego obszaru bufora ekranu konsoli. Po wywołaniu funkcji wymiary określonego prostokąta są zawarte w argumencie
lpScrollRectangle. Części prostokąta wskazywanego przez argument
lpScrollRectangle, które nie zachodzą na określony prostokąt są wypełniane znakami i atrybutami kolorów określonymi przez argument
lpFill. Ograniczający prostokąt pozwala na zmianę prostokąta
lpScrollRectangle oraz zaznaczonego prostokąta. Jeśli ograniczający prostokąt nie zawiera obszaru, który będzie wypełniony na podstawie wartości argumentu
lpFill, oryginalne rozmiary tego obszaru nie zostaną zmienione. Jeśli przesuwane lub zaznaczone obszary przekraczają wymiary bufora ekranu konsoli, to zostaną obcięte.
Funkcja używa znaków zapisanych w formacie Unicode lub 8-bitowych znaków z bieżącej strony kodowej konsoli. Domyślna strona kodowa konsoli jest inicjalizowana na stronę kodową systemu OEM. Do zmiany strony kodowej konsoli służą funkcje
SetConsoleCP oraz
SetConsoleOutputCP. Można również użyć polecenia
chcp
lub
mode con cp select=id_strony_kodowej
w wierszu polecenia.
Przykład
#include <windows.h>
int main()
{
SMALL_RECT lpScrollRectangle;
lpScrollRectangle.Left = 0;
lpScrollRectangle.Top = 0;
lpScrollRectangle.Right = 19;
lpScrollRectangle.Bottom = 19;
COORD dwDestinationOrigin;
dwDestinationOrigin.X = 10;
dwDestinationOrigin.Y = 15;
CHAR_INFO lpFill;
lpFill.Attributes = BACKGROUND_INTENSITY;
lpFill.Char.AsciiChar = ' ';
ScrollConsoleScreenBuffer( GetStdHandle( STD_OUTPUT_HANDLE ), & lpScrollRectangle, NULL, dwDestinationOrigin, & lpFill );
COORD screenBufferSize;
screenBufferSize.X = 50;
screenBufferSize.X = 30;
SetConsoleScreenBufferSize( GetStdHandle( STD_OUTPUT_HANDLE ), screenBufferSize );
ScrollConsoleScreenBuffer( GetStdHandle( STD_OUTPUT_HANDLE ), & lpScrollRectangle, NULL, dwDestinationOrigin, & lpFill );
return 0;
}
Wymagania
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.