Функции Win32 API для видеосистемы

Как и для других систем ПЭВМ, функции видеосистемы разделяются на информационные и управляющие. Информационные функции видеосистемы служат для получения скрытых от пользователя параметров отображения и для автоматической реакции программы на текущее состояние видеосистемы. К основным информационным функциям относятся:

· GetSysColor;

· SystemParametersInfo;

· GetSystemMetrics;

· GetDeviceCaps;

· EnumDisplaySetting;

· GetPixel.

Следует обратить внимание, что функция SystemParametersInfo встречается также среди функций устройств ручного ввода, таким образом, являясь многоцелевой. Эта одна из главных особенностей многих функций Win32 API. С использованием выше перечисленных функций можно получить информацию о:

· цветовой палитре интерфейса операционной системы;

· времени запуска хранителя экрана;

· разрешении видеосистемы;

· количестве цветов видеосистемы;

· доступных вариантах разрешений и цветов видеосистемы;

· цвете заданной точки устройства.

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

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

· SetSysColors;

· SystemParametersInfo;

· ChangeDisplaySetting;

· BitBlt;

· и т.п.

Как видно, некоторые функции являются и управляющими и информационными. Характерно и то, что набор функций меньше чем набор выполняемых действий. Этот факт объясняется тем, что, во-первых, довольно часто входной информацией для выполнения действия является один бит, и в таком случае нерационально использование целого байта или слова. Во-вторых, чтобы не расширять и без того большие списки имен функций, можно объединить операции сходные по назначению или по какому-нибудь признаку в одной функции.

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

· установить цвета элементов интерфейса операционной системы;

· установить обои рабочего стола;

· установить время включения хранителя экрана;

· изменить видеорежим экрана;

· копировать изображение.

Вспомогательные или обслуживающие функции, такие как GetActiveWindow, GetDesktopWindow, GetDC, GetWindowDC и ReleaseDC имеют место, также как и в файловой системе. В данном случае приведенные функции обслуживают процессы рисования, и процессы получения информации об области вывода графических данных (дисплей, принтер).

Например, перед выполнением функций рисования требуется получить идентификатор контекста устройства (GetActiveWindow, GetDC). Получение этого идентификатора связано с выделением памяти для его хранения, поэтому после завершения процесса рисования, следует освободить память (ReleaseDC). Естественно, что включение вспомогательных функций в управляющие, значительно упростило бы их использование. Однако при необходимости многократного использования контекста устройства, подобное включение, а значит постоянное выделение и освобождение памяти для каждой функции, было бы не рационально и внесло бы значительную задержку пропорциональную количеству функций рисования.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: