Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
LPARAM lParam; // конкретный смысл которой зависит отСодержание книги
Поиск на нашем сайте LPARAM lParam; // конкретный смысл которой зависит от типа сообщения DWORD time; //время в момент постановки сообщения в очередь POINT pt; //координаты курсора мыши в момент постановки сообщения в очередь } MSG;
После того, как сообщение взято из очереди, оно передается в функцию TranslateMessage, которая вызывает драйвер клавиатуры Windows для преобразования виртуальных кодов клавиш в ASCII-значения, которые ставятся в очередь программных событий в виде нового сообщения WM_CHAR. Это позволяет системе отличать, например, "А" от "а" без анализа состояния клавиш регистра.
Последняя функция цикла – DispatchMessage – берет данные о сообщении из структуры msg и передает их в соответствующую оконную процедуру (у приложения ведь может быть несколько окон и несколько оконных процедур) для обработки.
За исключением WM_QUIT, каждое сообщение заставляет GetMessage возвратить значение TRUE. Принимая WM_QUIT, программа выходит из цикла обработки сообщений и завершает работу.
Управление графическим выводом
В системе MD-DOS многие программы записывали данные прямо в видеопамять и порт принтера, поэтому разработчику приходилось создавать отдельные драйверы для каждой из множества моделей видеоплат и принтеров. В системе Windows добавлен особый "слой абстракции" – интерфейс графического устройства (Graphics Device Interface, GDI). Вместо того, чтобы напрямую обращаться к оборудованию, WinAPI-программа вызывает GDI-функции. Драйверы для видеоплат и принтеров предоставляет сама ОС, благодаря чему прикладному программисту не нужно знать тип используемой в данный момент видеоплаты или принтера. Система сама распознает целевое устройство и активизирует соответствующий ему модуль. При этом в каждый конкретный момент времени устройство вывода соответствует только одному приложению, что исключает конфликты.
Программное обеспечение, которое поддерживает независимость графического вывода от устройства, содержится в двух динамически компонуемых библиотеках (dll). Первая, gdi.dll, обеспечивает графический интерфейс устройства, вторая является драйвером конкретного устройства (например, vga.dll или epson9.dll).
Как только драйвер загружен, приложение может настроить ряд параметров вывода, таких как цвет линии и ее ширина, тип кисти и ее цвет, шрифт и т.д. Windows обеспечивает хранение этих и других параметров в специальной структуре, называемой контекстом устройства.
Контекст устройства (device context) – структура, определяющая набор графических объектов и связанных с ними атрибутов и графических режимов, воздействующих на вывод.
В стандартный набор графических объектов, позволяющих управлять выводом в GDI входят:
битовые массивы (bitmaps) – прямоугольные массивы точек, формирующие растровые изображения; карандаши (pens) – используются для задания параметров рисования линий, таких как толщина, цвет и стиль (сплошная, прерывистая и т.п.) кисти (brushes) – используются для задания параметров заливки замкнутых контуров, таких как цвет и стиль заливки. шрифты (fonts) – используются для задания параметров вывода текста, включая размер символов, имя шрифта и т.п. области (regions) – области окна, которые могут быть ограничены прямоугольником, многоугольником, эллипсом или их комбинацией для выполнения заливки, инверсии и т.п. логические палитры (logical palettes) – осуществляют интерфейс между приложением и цветным устройством вывода (таким как дисплей), содержат список цветов необходимых приложению. контуры (paths)– используются для целей заполнения и выделения контура различных фигур.
Windows сопоставляет структуру контекста устройства с физическим устройством и выдает команды ввода/вывода, соответствующие контексту. Таким образом обеспечивается универсальность представления информации как на экране, так и на других устройствах вывода, например, принтере, причем для этого используются одни и те же примитивы отображения.
Прямой доступ к контексту устройства, как и к большинству структур WinAPI отсутствует, поэтому настройка параметров осуществляется посредством вызова соответствующих функций WinAPI.
При работе с экраном фактически в качестве первичного устройства вывода приложения используется окно Windows, а не экран непосредственно. Приложение получает контекст устройства экрана, вызывая функции BeginPaint или GetDC, и идентифицируя окно, в которое будет производиться вывод. Обычно приложение получает контекст устройства экрана непосредственно перед выполнением операций вывода. После завершения вывода приложение должно освободить контекст вызовом EndPaint или ReleaseDC.
В отличие от экранного контекста, контекст принтера создается самим приложением командой CreateDC, и там же удаляется по окончании печати при помощи функции DeleteDC.
GDI может работать со шрифтами трех типов: растровыми, векторными и TrueType. Отличие между этими типами заключается в способе хранения параметров начертания символов в шрифтовых файлах. В случае растровых шрифтов каждый символ хранится в виде битового массива (качество символов падает при масштабировании). Векторные шрифты хранят для каждого символа относительные координаты концов отрезков, составляющих его (высока трудоемкость вывода таких шрифтов). Шрифты TrueType одержат информацию о линиях и командах изгиба, а также настроечную информацию для точного отображения символа, которая используется при уменьшении и увеличении масштаба. Последние обеспечивают приемлемую скорость вывода и масштабируются с сохранением изначального вида символов.
Каждый контекст устройства имеет свой шрифт по умолчанию. Для предоставления пользователю возможности выбора нужного шрифта имеется стандартный системный диалог.
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 50; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |