Поделиться через


Функция SetConsoleWindowInfo

Важно!

В этом документе описаны функции платформы консоли, которые больше не являются частью стратегии развития экосистемы. Мы не рекомендуем использовать это содержимое в новых продуктах, но мы будем продолжать поддерживать существующие использования для неопределенного будущего. Наше предпочтительное современное решение ориентировано на последовательности виртуальных терминалов для обеспечения максимальной совместимости в кроссплатформенных сценариях. Дополнительные сведения об этом решении по проектированию можно найти в классической консоли и в документе виртуального терминала .

Задает текущий размер и положение окна буфера экрана консоли.

Синтаксис

BOOL WINAPI SetConsoleWindowInfo(
  _In_       HANDLE     hConsoleOutput,
  _In_       BOOL       bAbsolute,
  _In_ const SMALL_RECT *lpConsoleWindow
);

Параметры

hConsoleOutput [ввод]
Дескриптор буфера экрана консоли. Этот дескриптор должен иметь право доступа GENERIC_READ. Дополнительные сведения см. в статье Безопасность и права доступа для буфера консоли.

bAbsolute [in]
Если этот параметр имеет значение TRUE, координаты указывают новые верхние и нижние правые угла окна. Если значение равно FALSE, координаты относительны к текущим координатам угла окна.

lpConsoleWindow [in]
Указатель на структуру SMALL_RECT , указывающую новые верхние и правые нижние угла окна.

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

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

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Замечания

Функция завершается ошибкой, если указанный прямоугольник окна выходит за рамки буфера экрана консоли. Это означает, что элементы прямоугольника lpConsoleWindow (или вычисляемые верхние и левые координаты, если bAbsolute имеет значение FALSE), не может быть меньше нуля. Аналогичным образом элементы нижнего и правого (или вычисляемые нижние и правые координаты) не могут быть больше (высота буфера экрана – 1) и (ширина буфера экрана – 1), соответственно. Функция также завершается ошибкой, если правый элемент (или вычисляемая правая координата) меньше или равен левому элементу (или вычисляемой левой координате) или если элемент Нижнего (или вычисляемая нижняя координата) меньше или равен верхнему элементу (или вычисляемой верхней координате).

Для консоли с несколькими буферами экрана изменение расположения окна для одного буфера экрана не влияет на расположения окна других буферов экрана.

Чтобы определить текущий размер и положение окна буфера экрана, используйте функцию GetConsoleScreenBufferInfo . Эта функция также возвращает максимальный размер окна, учитывая текущий размер буфера экрана, текущий размер шрифта и размер экрана. Функция GetLargestConsoleWindowSize возвращает максимальный размер окна с учетом текущих размеров шрифта и экрана, но не учитывает размер буфера экрана консоли.

SetConsoleWindowInfo можно использовать для прокрутки содержимого буфера экрана консоли путем смены положения прямоугольника окна без изменения его размера.

Совет

Этот API не рекомендуется и не имеет эквивалента виртуального терминала . Это решение намеренно выравнивает платформу Windows с другими операционными системами, где пользователь получает полный контроль над этим параметром презентации. Удаленное взаимодействие приложений с помощью межплатформенных служебных программ и транспорта, таких как SSH, может не работать должным образом, если используется этот API.

Примеры

Пример см. в разделе "Прокрутка окна буфера экрана".

Requirements

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхний колонтитул ConsoleApi2.h (через WinCon.h, включая Windows.h)
Библиотека Kernel32.lib
DLL-библиотеки Kernel32.dll

См. также

Функции консоли

GetConsoleScreenBufferInfo

GetLargestConsoleWindowSize

ScrollConsoleScreenBuffer

Прокрутка буфера экрана

SMALL_RECT