Функция ScrollConsoleScreenBuffer


Функция ScrollConsoleScreenBuffer перемещает блок данных в экранном буфере. Результатом перемещения может быть ограничение определяемого прямоугольника отсечения по границам, так что содержание экранного буфера консоли вне прямоугольника отсечения останется неизменным.

Синтаксис

BOOL ScrollConsoleScreenBuffer(
HANDLE hConsoleOutput,             // дескриптор экранного буфера
CONST SMALL_RECT* lpScrollRectangle, // прямоугольник прокрутки
CONST SMALL_RECT* lpClipRectangle ,  // прямоугольник отсечения
COORD dwDestinationOrigin,           // новое место
CONST CHAR_INFO* lpFill            // заполнение символами и цветом
);

Параметры

hConsoleOutput

[in] Дескриптор экранного буфера консоли. Дескриптор должен иметь право доступа GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.

lpScrollRectangle

[in] Указатель на структуру SMALL_RECT, члены которой устанавливают левую верхнюю и нижнюю правую координаты прямоугольника экранного буфера консоли, который будет перемещен.

 lpClipRectangle

[in] Указатель на структуру SMALL_RECT, члены которой устанавливают левую верхнюю и нижнюю правую координаты прямоугольника экранного буфера консоли, который занимается прокруткой. Этот указатель может иметь значение ПУСТО (NULL).

dwDestinationOrigin

[in] Структура COORD, которая устанавливает левый верхний угол нового местоположения содержания lpScrollRectangle

lpFill

[in] Указатель на структуру CHAR_INFO, определяющую символы и атрибуты цвета, которые будут использованы для заполнении ячеек в пределах пересечения lpScrollRectangle и lpClipRectangle, оставленные пустыми в результате перемещения.

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - не ноль.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получить расширенные данные об ошибках, вызовите функцию GetLastError.

Замечания

Функция ScrollConsoleScreenBuffer копирует содержание прямоугольной области экранного буфера, определяемого параметром lpScrollRectangle, в другую область экранного буфера консоли. Целевой прямоугольник имеет те же самые размеры, что и прямоугольник lpScrollRectangle с его координатами левого верхнего угла, заданных параметром dwDestinationOrigin. Те части lpScrollRectangle, которые не перекрываются с целевым прямоугольником, заполняются символом и атрибутами цвета, определяемыми параметром lpFill.

Прямоугольник отсечения применяется, чтобы сделать изменения и в lpScrollRectangle прямоугольнике и целевом прямоугольнике. Например, если прямоугольник отсечения не включает в себя область, которая была бы заполнена содержанием параметра lpFill, первоначальное содержание области остается неизменным.

Если область прокрутки или целевая область выходят за рамки размеров экранного буфера консоли, они отсекаются. Например, если lpScrollRectangle является областью, содержащей (0,0) и (19,19), а dwDestinationOrigin - (10,15), целевой прямоугольник – это область, содержащаяся (10,15) и (29,34). Однако, если экранный буфер консоли - шириной 50 символов и высотой 30 символов, целевой прямоугольник отсекается до (10,15) и (29,29). Изменения экранного буфера консоли, также отсекаются согласно lpClipRectangle, если параметр задает структуру SMALL_RECT. Если прямоугольник отсечения задан как (0,0) и (49,19), изменяется только то, что встречается в этой области экранного буфера консоли.

Windows NT /2000/XP: эта функция использует или символы Unicode или 8-разрядные символы от текущей кодовой страницы консоли. Кодовая страница консоли вначале устанавливается по умолчанию как системная кодовая страница (OEM). Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды chcp или mode con cp select =.

Windows 95/98/Me: функция ScrollConsoleScreenBufferW поддерживает Microsoft Layer for Unicode. Чтобы использовать его, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.

Код примера

Пример смотри в статье Прокрутка содержания экранного буфера.

Смотри также

Обзор консольных приложений, Функции консоли, CHAR_INFO, COORD, SetConsoleCP, SetConsoleOutputCP, SetConsoleWindowInfo, SMALL_RECT

Размещение и совместимость ScrollConsoleScreenBuffer

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Wincon.h

- включено в

Windows.h

Unicode

Реализуется как Unicode и ANSI в версиях Windows NT/2000/XP. А также поддерживает Microsoft Layer for Unicode

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz