Реферат: Windows
Если сообщение поступило например от устройств ввода, таких как мышь или клавиатура, то для определения адресата сообщения используется понятие "фокус ввода". Так как пользователь в каждый момент времени может работать только с одним приложением. Таким образом, говорят, что приложение, в которое попадают сообщения от клавиатуры в момент ввода, имеет фокус ввода, поэтому все сообщения от устройств ввода информации поступают из системной очереди в очередь приложения, имеющего фокус ввода в данный момент.
Для обработки поступающих сообщений в программе
организуется цикл сообщений, который создается при при
создании окна приложения. Цикл сообщений извлекает сообщения
из очереди и передает их функции управления соответствующим
окном приложения, причем не напрямую а через Window. О функции
окна приложений пойдет речь позже.
Все стандартные сообщения, определенные в системе Windows можно разделить на несколько групп:
- аппаратные (входные данные от мыши и клавиатуры);
- об организации окна (уведомление, требование действия, запрос);
- об организации интерфейса пользователя (меню,
указатель мыши, линейка прокрутки, блоки диалога, MDI);
- о завершении (закрытие прикладной программы или системы);
- частные (элементы управления блоком диалога: редактор кнопка, блок списка, комбо-блок);
- уведомление о системном ресурсе (изменение цвета, шрифты, буферизация печати, режимы работы устройств);
- о совместном использовании данных (буфер вырезанного изображения и динамический обмен данными DDE);
- внутренние системные (недокументированные сообщения).
Ниже будут более подробно рассмотрены перечисленные классы сообщений в контексте их применения. Особое внимание будет уделено сообщениям по взаимодействию между приложениями
и совместному использованию данных.
ИНТЕРФЕЙС ГРАФИЧЕСКИХ УСТРОЙСТВ (GDI)
В данном разделе рассматриваются вопросы связанные с созданием графического вывода, обсуждаются различные типы графического вывода, поддерживаемых интерфейсом графических устройств (GDI).
GDI представляет собой библиотеку графического вывода Windows. GDI обеспечивает графический вывод на экран дисплея и на устройства для получения твердых копий, например, принтеры и плоттеры. GDI отвечает за создание отображения каждой линии, буквы или графического знака, выводимого программой для Windows. Сама Windows использует GDI при подборке элементов, составляющих пользовательский интерфейс, - окон, пиктограмм, меню, блоков диалога и т.д.
Устройства GDI
Интерфейс графических устройств позволяет выполнять графический вывод на различные устройства. Для того, чтобы GDI работал с конкретным устройством, необходим специальный элемент программного обеспечения - драйвер устройства, который преобразует запросы графического вывода в конкретные действия для рисования на конкретном устройстве.
Помимо этого, драйвер устройства представляет GDI набор флагов, которые сообщают, какими графическими возможностями обладает данное устройство. Существует пять наборов таких флагов: для кривых линий, для прямых, многоугольников, битовых образов и текстов, которые сообщают GDI, когда можно направить устройству непосредственно запрос, а когда такой запрос надо предварительно преобразовать в последовательность запросов низкого уровня. Это зависит то возможностей конкретного устройства.
Помимо физических устройств GDI поддерживает логические устройства, или псевдоустройства. Псевдоустройства служат для хранения изображений. В отличие то физических устройств, которые выводят изображения на определенной аппаратной базе, псевдоустройства позволяют "перехватить" образ изображения в оперативной памяти или на диске. GDI поддерживает два типа псевдоустройств: битовые образы и метафайлы.
Битовые образы имеют прямоугольную форму и хранят изображения в памяти в таком виде, в каком графические образы хранятся дисплейным адаптером, и обеспечивают быстрое получение копии картинки. Битовые образы используются и для хранения образов, которые нужно быстро выводить на экран, например, пиктограммы, курсоры и т.д.
Метафайлы создаются средствами записи-воспроизведения
GDI. С точки зрения расходуемой памяти метафайлы