Методические указания по курсу «Программирование под
Windows»
Лабораторная работа № 1
Конфигурирование
Visual
Studio
Цель работы: изучение оболочки Visual Studio.
Порядок выполнения работы
Запустить оболочку Visual C++. В меню Tools / Options во вкладке Directories установить пути на заголовочные, библиотечные файлы, а также на файлы исходных текстов стандартной библиотеки и MFC, если они еще не установлены.
Создать новый проект консольного приложения (меню File / New…, вкладка Projects, пункт Win32 Console Application). Написать небольшую программу с выводом сообщения в стандартный поток (экран). Скомпилировать проект (меню Build / Build) и запустить программу (меню Build / Execute).
Открыть окно Workspace (меню View / Workspace). Добавить новый класс (меню Insert / New class). Выбрать вкладку Class View и просмотреть имеющиеся функции и классы проекта. Добавить новую функцию в класс, выбрав из контекстного меню пункт Add Member Function. Перейти к объявлению добавленной функции (пункт Go to Declaration контекстного меню Class View).
Поставить точку останова в функции main (пункт Insert Breakpoint контекстного меню редактора). Запустить программу на выполнение в интегрированном отладчике (меню Build / Start Debug / Go). Выполнить оставшуюся часть функции main по шагам (меню Debug / Step Over), наблюдая за состоянием локальных переменных (меню View / Debug Windows / Variables).
Изменить текущую конфигурацию проекта с Debug на Release (меню Build / Set Active Configuration). Попробовав запустить программу в отладчике, убедиться, что отладочная информация отсутствует.
Вопросы к защите
1. Основные компоненты Visual С++
2. Создание программы в Visual С++.
3. Использование отладчика.
Лабораторная работа № 2
Разработка приложений с использованием
Windows
API
Цель работы: изучение основных принципов разработки приложений с использованием Windows API.
Порядок выполнения работы
Создать новый проект приложения Win32 «Hello, world» с использованием мастера приложений.
Изучить структуру функции WinMain, параметры ее вызова.
Изучить структуру функции обработки сообщений главного окна приложения WndProc.
Используя отладчик, определить порядок вызова и назначение функций, необходимых для создания окна приложения.
Вопросы к защите
1. Окна, оконные функции.
2. Соглашения об именах переменных и функций в программах для Windows.
3. Сообщения Windows.
4. Цикл обработки сообщений.
Лабораторная работа № 3
Обработка сообщений
Windows
, ресурсы приложения
Цель работы: изучить основные способы обработки сообщений Windows в программе; научиться создавать собственные ресурсы.
Порядок выполнения работы
Создать новый проект приложения Win32 «Hello, world» с использованием мастера приложений.
В редакторе ресурсов создать новый диалог и добавить новый пункт в меню приложения.
Добавить обработку сообщения от этого пункта меню. В результате, при выборе добавленного пункта меню должен появляться новый диалог из ресурсов приложения.
Изучить обработку нажатия кнопок мыши, а также передвижения мыши в главном окне.
В обработчике сообщения WM_PAINT добавить отрисовку какой-либо простой геометрической фигуры.
Реализовать «drag and drop» для этой фигуры: при передвижении мыши фигура должна рисоваться за курсором, при нажатии на левую клавишу –фигура должна останавливаться в месте нажатия, при нажатии на правую – снова двигаться за курсором мыши.
Вопросы к защите
1. Типы сообщений.
2. Обработка сообщений.
3. Диалоги, окна документов, меню.
4. Ресурсы. Иконки, курсоры.
5. Работа с мышью.
6. Обработка сообщения WM_PAIN
Лабораторная работа № 4
Использование
MFC для создания программ
Цель работы: изучить каркас приложения MFC, иерархию классов MFC.
Порядок выполнения работы
Создать новый проект приложения MFC на основе диалога (dialog based) с использованием мастера приложений.
Изучить основной класс созданного приложения, его родителя (класс CWinApp), функцию InitInstance.
С использованием отладчика определить функцию, с которой начинается выполнение программы.
Написать программу просмотра avi-файлов (с использованием элемента управления CAnimateCtrl).
Вопросы к защите
1. Каркас приложения MFC.
2. Класс CwinApp.
3. Класс CWnd.
4. Наследование.
Лабораторная работа № 5
Создание диалогов в
MFC
Цель работы: изучить методы создания модальных и немодальных диалогов
Порядок выполнения работы
Создать новый проект приложения MFC на основе диалога (dialog based) с использованием мастера приложений.
Изучить класс CDialog, классы основных элементов управления (CButton, CEdit, CComboBox, …), создание элементов управления в редакторе ресурсов.
На примере создания простейшего калькулятора, изучить технологию ассоциации переменных диалога с элементами управления с использованием ClassWizard.
Написать программу просмотра и редактирования простейшей базы данных о студентах. Базу данных считывать из файла. Приложение должно состоять из двух диалогов. В первом диалоге редактируется число записей в базе, имя и фамилия одного (текущего) студента. Второй диалог предназначен для просмотра всей базы в виде таблицы. Высота таблицы должна автоматически вычисляться по текущему разрешению экрана.
Вопросы к защите
1. Класс CDialog.
2. Модальные и немодальные диалоги.
3. Стандартные элементы управления.
4. Ассоциация переменных с элементами управления.
5. Стандартные диалоговые окна Windows.
Лабораторная работа № 6
Работа с графикой.
Цель работы: изучить интерфейс графического устройства, ознакомиться с основами библиотеки OpenGL.
Порядок выполнения работы
Создать новый проект однодокументного приложения MFC (single document) с использованием мастера приложений.
Изучить классы «контекст устройства»: CDC, ССlientDС, CPaintDC, CWindowDC, CMetafileDC.
Разработать систему классов «геометрические фигуры», порожденных из базового класса Figure с системой чистых виртуальных функций (например, Draw(CDC*)).
Написать программу простейшего графического редактора, позволяющего рисовать (добавлять, удалять, редактировать свойства) фигуры из разработанной системы классов в окне созданного приложения.
Изучить структуру приложения Windows, использующего OpenGL. Изучить архитектуру, синтаксис команд, примитивы OpenGL.
Написать программу рисования простых трехмерных тел (по указанию преподавателя).
Вопросы к защите
1. Графическое окно. Класс CDC и порожденные от него.
2. Режимы преобразования координат.
3. Рисование мышью.
4. Библиотека OpenGL.
Лабораторная работа № 7
Фреймы и окна документов.
Цель работы: изучить архитектуру «документ-вид».
Порядок выполнения работы
Изучить функции взаимодействия «документ-вид», чтение и запись документов в SDI- и MDI-приложениях.
Переписать программу графического редактора из лабораторной работы № 6 в стиле MDI-приложения. Реализовать сериализацию документов.
Изучить технологию печати документов с использованием MFC и архитектуры «документ-вид».
Реализовать предварительный просмотр и печать документа в разрабатываемом приложении.
Вопросы к защите
1. Фреймы и окна документов.
2. Использование MDI.
3. Работа с принтером.