
- •Методичні вказівки до лабораторних робіт по курсу "системне програмування "
- •Методичні вказівки
- •До лабораторних робіт по курсу
- •"Системне програмування "
- •Частина 1. “Програмування для Windows 95/nt”
- •1.Общие положения
- •1.2. Порядок выполнения работы
- •1. 4. Оценивание выполнения работы
- •2. Структура windows - приложений. Оконная процедура. Обработка сообщений
- •2.1. Цель работы
- •2.2. Указания по подготовке к выполнению лабораторной работы
- •2.4. Задание на лабораторную работу
- •2.5. Контрольные вопросы и задания
- •3. Контексты устройств. Вывод текста
- •3.1. Цель работы
- •3.2. Указания по подготовке к выполнению лабораторной работы
- •3.3. Обзор темы работы
- •3.4. Задание на лабораторную работу
- •3.5. Контрольные вопросы и задания
- •4. Графический интерфейс пользователя (graphical user interface, gui)
- •4.1. Цель работы
- •4.2. Указания по подготовке к выполнению лабораторной работы
- •4.3. Сущность работы
- •4.4. Задание на лабораторную работу
- •4.5. Контрольные вопросы и задания
- •5. Средства ввода информации
- •5.1. Цель работы
- •5.2. Указания по подготовке к выполнению лабораторной работы
- •5.3. Обзор темы работы
- •5.4. Задание на лабораторную работу
- •5.5. Контрольные вопросы и задания
- •6. Использование ресурсов
- •6.1. Цель работы
- •6.2. Указания по подготовке к выполнению лабораторной работы
- •6.3. Обзор темы работы
- •6.4. Задание на лабораторную работу
- •6.5. Контрольные вопросы и задания
- •7. Многозадачность и многопоточность
- •7.1. Цель работы
- •7.2. Указания по подготовке к выполнению лабораторной работы
- •7.3. Обзор темы работы
- •7.4. Задание на лабораторную работу
- •7.5. Контрольные вопросы и задания
- •8. Многооконный интерфейс
- •8.1. Цель работы
- •8.2. Указания по подготовке к выполнению лабораторной работы
- •7.3. Обзор темы работы
- •7.4. Задание на лабораторную работу
- •8.5. Контрольные вопросы и задания
- •9.4. Задание на лабораторную работу
- •9.5. Контрольные вопросы и задания
- •Список литературы
- •Содержание
2.5. Контрольные вопросы и задания
В чем заключается объектно-ориентированный подход к программированию?
Раскройте особенности архитектуры, управляемой событиями.
Каково назначение оконной процедуры приложения?
Опишите основные этапы создания окна приложения.
Объясните смысл цикла обработки сообщений.
Каким образом происходит обработка сообщений в приложениях Windows?
Раскройте сущность синхронных и асинхронных сообщений.
Каким образом формируются сообщения?
Поясните особенности формирования сообщения WM_PAINT. Что такое действительные и недействительные прямоугольники.
Какие системные сообщения вы знаете?
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.
Информация о метрике: ширину полосы меню, наличие мыши в системе.
Информация об устройстве: действительное цветовое разрешение.
Информация о шрифте: усредненная ширина символа строки и ширина самого широкого символа.