Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
System programming / Методические указания / Методичка к лабораторным работам (рус).doc
Скачиваний:
52
Добавлен:
08.05.2015
Размер:
218.11 Кб
Скачать

2.5. Контрольные вопросы и задания

  1. В чем заключается объектно-ориентированный подход к программированию?

  2. Раскройте особенности архитектуры, управляемой событиями.

  3. Каково назначение оконной процедуры приложения?

  4. Опишите основные этапы создания окна приложения.

  5. Объясните смысл цикла обработки сообщений.

  6. Каким образом происходит обработка сообщений в приложениях Windows?

  7. Раскройте сущность синхронных и асинхронных сообщений.

  8. Каким образом формируются сообщения?

  9. Поясните особенности формирования сообщения WM_PAINT. Что такое действительные и недействительные прямоугольники.

  10. Какие системные сообщения вы знаете?

3. Контексты устройств. Вывод текста

3.1. Цель работы

Ознакомление с концепцией контекстного представления устройств в современных операционных системах, получение практических навыков по составлению, написанию и отладке программ, осуществляющих аппаратно-независимый вывод информации на экран дисплея, принтеры, и другие периферийные устройства, представленные контекстами.

3.2. Указания по подготовке к выполнению лабораторной работы

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

При подготовке к работе необходимо изучить конспект лекций по указанной теме, методические указания, а также разделы, указанные в [16, c.57-62], [17, c.28-32].

3.3. Обзор темы работы

Контекст устройства фактически является структурой данных, которая внутренне поддерживается GUI. Контекст устройства связан с конкретным устройством вывода информации, таким как дисплей, принтер, плоттер. Некоторые значения в контексте устройства являются графическими "атрибутами", которые определяют некоторые особенности работы функций рисования. Например, для функции TexOut, эти атрибуты задают цвет текста, цвет фона, положение в окне при выводе и т.п.

Перед осуществлением вывода, программа должна получить описатель контекста, все операции по выводу осуществлять с использованием описателя контекста, после чего, программа должна освободить описатель контекста.

В данной работе необходимо использовать следующие функции API: BeginPaint или CetDC для получения описателя контекста устройства и EndPaint или ReleaseDC для его уничтожения. Следует отметить, что при вызове BeginPaint и EndPaint обновляет фон рабочей области и устанавливает рабочую область в действительное состояние. Получение рабочей области окна можно выполнить при помощи функции GetClientRect. При этом, использовать контекст, полученный при помощи BeginPaint, можно только для рисования в рабочей области окна. Вывод текста можно осуществлять при помощи функций

TextOut и DrawText. Информация о системных параметрах получается при помощи функций GetTextMetrics и GetSystemMetrcs.

3.4. Задание на лабораторную работу

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

Вариант 1.

Информация о метрике: ширина и высота экрана в точках, ширина и высота горизонтальной полосы прокрутки, ширина и высота рамки окна приложения.

Информация об устройстве: ширину поля вывода в миллиметрах.

Информация о шрифте: величина пространства над символом для специальный знаков.

Вариант 2.

Информация о метрике: ширина и высота окна диалога, ширина и высота иконки приложения.

Информация об устройстве: высоту поля вывода в миллиметрах.

Информация о шрифте: величина межстрокового расстояния.

Вариант 3.

Информация о метрике: ширина и высота курсора, ширина и высота клиентской области приложения.

Информация об устройстве: ширину поля вывода в пикселах.

Информация о шрифте: усредненная ширина символа строки.

Вариант 4.

Информация о метрике: минимальную и максимальную ширину оконного приложения, минимальную и максимальную ширину иконки.

Информация об устройстве: высота поля вывода в растровых линиях.

Информация о шрифте: ширина самого широкого символа.

Вариант 5.

Информация о метрике: наличие мыши в системе и число кнопок у мыши

Информация об устройстве: количество фонтов.

Информация о шрифте: высота шрифта.

Вариант 6.

Информация о метрике: минимальное и максимальное значение, до которого можно изменить ширину и высоту окна.

Информация об устройстве: размер структуры данных об устройстве.

Информация о шрифте: высота шрифта и величина межстрокового расстояния.

Вариант 7.

Информация о метрике: величину прямоугольника, попадая в который засчитывается двойной щелчок мыши.

Информация об устройстве: относительная ширина точки.

Информация о шрифте: усредненная величина символа строки и величина пространства над символом для специальный знаков.

Вариант 8.

Информация о метрике: ширина и высота иконки приложения, ширина и высота вертикальной полосы прокрутки.

Информация об устройстве: относительная высота точки

Информация о шрифте: ширина самого широкого символа.

Вариант 9.

Информация о метрике: ширину полосы меню, наличие мыши в системе.

Информация об устройстве: действительное цветовое разрешение.

Информация о шрифте: усредненная ширина символа строки и ширина самого широкого символа.