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


Режимы консоли низкого уровня

Важно!

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

Типы событий ввода, сообщаемые в входном буфере консоли, зависят от режимов ввода мыши и окна консоли. Обработанный режим ввода консоли определяет, как система обрабатывает сочетание клавиш CTRL+C. Чтобы задать или получить состояние входных режимов консоли, приложение может указать дескриптор входного буфера консоли в вызове функции SetConsoleMode или GetConsoleMode. Следующие режимы используются с дескрипторами ввода консоли.

Режим Description
ENABLE_MOUSE_INPUT Определяет, передаются ли события мыши в входном буфере. По умолчанию входные данные мыши включены, а входные данные окна отключены. Изменение любого из этих режимов влияет только на входные данные, возникающие после установки режима; Ожидающие события мыши или окна в входном буфере не удаляются. Указатель мыши отображается независимо от режима мыши.
ENABLE_WINDOW_INPUT Определяет, передаются ли события изменения размера буфера в входном буфере. По умолчанию входные данные мыши включены, а входные данные окна отключены. Изменение любого из этих режимов влияет только на входные данные, возникающие после установки режима; Ожидающие события мыши или окна в входном буфере не удаляются. Указатель мыши отображается независимо от режима мыши.
ENABLE_PROCESSED_INPUT Управляет обработкой входных данных для приложений с помощью высокоуровневых функций ввода-вывода консоли. Однако если включен обработанный режим ввода, сочетание клавиш CTRL+C не сообщается в входном буфере консоли. Вместо этого он передается в соответствующую функцию обработчика элементов управления. Дополнительные сведения об обработчиках управления см. в разделе "Обработчики элементов управления консолью".

Режимы вывода буфера экрана не влияют на поведение низкоуровневых выходных функций.