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

      Комментарии к записи Функции win32 api для видеосистемы отключены

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

§ GetSysColor – позволяет получить информацию о цветовой палитре интерфейса операционной системы;

§ SystemParametersInfo – позволяет получить время запуска хранителя экрана;

§ GetSystemMetrics – позволяет получить системную метрику;

§ GetDeviceCaps – позволяет получить параметры видеосистемы (количество цветов, разрядность и т. д.);

§ EnumDisplaySetting – позволяет получить доступные варианты разрешений и цветов видеосистемы;

§ GetPixel – позволяет получить цвет заданной точки устройства.

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

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

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

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

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

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

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

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

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

§ SetSysColors – позволяет установить цвета элементов интерфейса операционной системы;

§ SetPixel – позволяет установить цвет точки экрана;

§ SystemParametersInfo – позволяет установить фон рабочего стола;

§ ChangeDisplaySetting – позволяет изменить видеорежим экрана;

§ BitBlt – позволяет копировать изображение;

§ и т.п.

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

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

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

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

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

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

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

Функции работы с окнами позволяют изменять расположение и размер окон, выполнять компоновку окон на экране и т. д. Некоторые из этих функций:

§ SetWindowPos – позволяет указать расположение указанного окна на экране;

§ SetActiveWindow – позволяет сделать указанное окно активным;

§ BringWindowToTop – позволяет расположить указанное окно поверх остальных окон;

§ CascadeWindows – позволяет расположить открытые окна каскадом;

§ TileWindows – позволяет расположить открытые окна на экране.

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

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

Статьи к прочтению:

Программирование на Си урок 42: WinAPI в СИ


Похожие статьи:

  • Функции win32 api для обмена данными по rs-232с

    Функции получения информации при обмене данными всегда применяются в приложениях, где необходимо осуществить настройку параметров до начала приема или…

  • Типы связности для функций и данных

    (0) Тип случайной связности. Наименее желательный. Случайная связность возникает, когда конкретная связь между функциями мала или полностью отсутствует….