Как и для других систем ПЭВМ, функции видеосистемы разделяются на информационные и управляющие. Информационные функции видеосистемы служат для получения скрытых от пользователя параметров отображения и для автоматической реакции программы на текущее состояние видеосистемы. К основным информационным функциям относятся:
· GetSysColor;
· SystemParametersInfo;
· GetSystemMetrics;
· GetDeviceCaps;
· EnumDisplaySetting;
· GetPixel.
Следует обратить внимание, что функция SystemParametersInfo встречается также среди функций устройств ручного ввода, таким образом, являясь многоцелевой. Эта одна из главных особенностей многих функций Win32 API. С использованием выше перечисленных функций можно получить информацию о:
· цветовой палитре интерфейса операционной системы;
· времени запуска хранителя экрана;
· разрешении видеосистемы;
· количестве цветов видеосистемы;
· доступных вариантах разрешений и цветов видеосистемы;
· цвете заданной точки устройства.
Для настройки параметров видеосистемы и для вывода на дисплей графических изображений используются управляющие функции Win32 API. В рассматриваемом наборе управляющих функций не будут отражены все функции рисования геометрических фигур и точек, а также функции заливки вследствие простоты их использования. Достаточно будет привести только функцию BitBlt показывающую принцип обращения с функциями данного вида.
|
|
Управляющие функции видеосистемы:
· SetSysColors;
· SystemParametersInfo;
· ChangeDisplaySetting;
· BitBlt;
· и т.п.
Как видно, некоторые функции являются и управляющими и информационными. Характерно и то, что набор функций меньше чем набор выполняемых действий. Этот факт объясняется тем, что, во-первых, довольно часто входной информацией для выполнения действия является один бит, и в таком случае нерационально использование целого байта или слова. Во-вторых, чтобы не расширять и без того большие списки имен функций, можно объединить операции сходные по назначению или по какому-нибудь признаку в одной функции.
Приведенный выше набор функций позволяет выполнить следующие действия при выводе графической информации на экран видеосистемы:
· установить цвета элементов интерфейса операционной системы;
· установить обои рабочего стола;
· установить время включения хранителя экрана;
· изменить видеорежим экрана;
· копировать изображение.
Вспомогательные или обслуживающие функции, такие как GetActiveWindow, GetDesktopWindow, GetDC, GetWindowDC и ReleaseDC имеют место, также как и в файловой системе. В данном случае приведенные функции обслуживают процессы рисования, и процессы получения информации об области вывода графических данных (дисплей, принтер).
|
|
Например, перед выполнением функций рисования требуется получить идентификатор контекста устройства (GetActiveWindow, GetDC). Получение этого идентификатора связано с выделением памяти для его хранения, поэтому после завершения процесса рисования, следует освободить память (ReleaseDC). Естественно, что включение вспомогательных функций в управляющие, значительно упростило бы их использование. Однако при необходимости многократного использования контекста устройства, подобное включение, а значит постоянное выделение и освобождение памяти для каждой функции, было бы не рационально и внесло бы значительную задержку пропорциональную количеству функций рисования.