Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа № 3 / Методические указания

.doc
Скачиваний:
31
Добавлен:
11.05.2015
Размер:
35.84 Кб
Скачать

Лабораторная работа № 11. Функции. Управление выводом в консоли.

Функции API для управления выводом в консоли.

Анализ нажатой клавиши.

Функция GetAsyncKeyState()

Описание: int GetAsyncKeyState(int Key);

Опpеделяет состояние виpтуальной клавиши.

Параметры:

Key: Код виpтуальной клавиши.

Возвpащаемое значение:

Если установлен стаpший байт, клавиша Key находится в нажатом положении, если младший - то клавиша Key была нажата после пpедыдущего вызова функции.

Функция keybd_event()

Функция keybd_event синтезирует нажатие клавиши. Вызывает функцию keybd_event программа обработки прерываний драйвера клавиатуры.

Описание:

void keybd_event(

BYTE bVk,

BYTE bScan,

DWORD dwFlags,

PTR dwExtraInfo

);

Параметры

bVk Определяет код виртуальной клавиши. Код должен быть значением в диапазоне от 1 до 254.

bScan не используется.

dwFlags Определяет различные виды операций функции. Этот параметр может состоять из одного или нескольких следующих значений:

KEYEVENTF_EXTENDEDKEY - Если он установлен, скэн-коду предшествует префиксный байт, имеющий значение 0xE0 (224).

KEYEVENTF_KEYUP Если он установлен, клавиша была отпущена. Если не установлен, клавиша была нажата.

dwExtraInfo Определяет дополнительное значение, связанное с нажатием клавиши.

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

нет возвращаемых значений.

Коды клавиш описаны в файле Коды клавиш.doc

Пример использования функций в папке PressButton.

Управление курсором.

Функция GetStdHandle

Описание: HANDLE GetStdHandle(HANDLE hCon); - получить дескриптор консоли

Параметры

Дескриптор hCon

Тип COORD – структура для описания позиции курсора, содержащая два поля X и Y

Функция SetConsoleCursorPosition()

Описание: SetConsoleCursorPosition(HANDLE hCon, COORD cPos); - установить курсор на позицию cPos.

Пример использования функций - папка ENUM

Изменение цвета текста.

В файле windows.h определены три константы – коды основных цветов

FOREGROUND_RED

FOREGROUND_GREEN

FOREGROUND_BLUE

и константа, изменяющая интенсивность выводимых символов -

FOREGROUND_INTENSITY

Все остальные цвета формируются комбинациями 4-х значений.

Комбинации констант для задания цветов – файл Цвета.doc

Изменение цвета фона.

Принцип определения цвета фона аналогичен принципу определения цвета текста, для комбинаций используются константы

BACKGROUND_RED

BACKGROUND_GREEN

BACKGROUND_BLUE

BACKGROUND_INTENSITY

По умолчанию – цвет фона – черный, цвет символов – белый.

Для изменения цвета используются следующие типы и функции:

Тип

typedef struct _CONSOLE_SCREEN_BUFFER_INFO {

COORD dwSize; - размер окна консоли

COORD dwCursorPosition; - текущие координаты курсора

WORD wAttributes; - атрибуты цвета

SMALL_RECT srWindow; - местоположение консоли

COORD dwMaximumWindowSize; - максимальный размер окна

} CONSOLE_SCREEN_BUFFER_INFO ;

Функция:

BOOL SetConsoleTextAttribute(

HANDLE hConsoleOutput, // дескриптор экранного буфера

WORD wAttributes // цвет текста и фона

);

Функция устанавливает значение цвета и фона, заданные в wAttributes.

Например:

SetConsoleTextAttribute(hCon, FOREGROUND_RED| FOREGROUND_INTENSITY) –

Установлены текстовые атрибуты – цвет символов ярко-красный, цвет фона черный (по умолчанию).

Соседние файлы в папке Лабораторная работа № 3