Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обучение VC++ / ЛекцииИнтернетС++ / Лекция_лаб_практикум.doc
Скачиваний:
64
Добавлен:
16.02.2016
Размер:
932.35 Кб
Скачать

http://www.np.vspu.ac.ru/metodika/m2.htm?num=2

Лекция 1. Особенности создания приложений под Windows в среде Visual C++ 6.0 с использованием MFC классов 4

Методические рекомендации 4

План лекции 4

Интерфейс графического устройства 4

Программирование, основанное на ресурсах 5

Управления памятью 5

Компоненты среды Visual C++ 6

Документы и их представление 8

Контрольные вопросы 8

Лабораторная работа 1.1 9

Задание: 9

Ход работы: 9

Создание проекта. 9

Редактирование функций. 12

Изучение работы приложения. 13

Самостоятельная работа. 13

Добавление своего класса. 13

Домашняя работа. 15

Лекция 2. Основы программирования. Работа с классом Вид. 16

Методические рекомендации: 16

План: 16

Интерфейс графического устройства 16

Работа с GDI объектами 17

Пример создания нового GDI объекта 19

Режимы преобразования координат 19

Координатные пространства MFC 20

Работа с окнами, содержащими полосы прокрутки 22

Линейки прокрутки 22

Различные способы прокрутки 22

Прием ввода с клавиатуры 23

Контрольные вопросы 23

Лабораторная работа 2.1 25

Задание: 25

Ход работы: 25

Создание проекта. 25

Создание образа звезды при помощи класса СArray. 25

Обработка сообщений от мыши. 26

Задание для самостоятельной домашней разработки. 28

Лекция 3. Меню. Панели инструментов и строки состояния 29

Методические рекомендации 29

План 29

Меню Windows 29

Обновление командного пользовательского интерфейса 30

Класс CMenu 30

Создание контекстных меню 31

Панели элементов управления и каркас приложений 32

Панель инструментов 32

Растровое изображение панели инструментов 33

Состояния кнопок 33

Всплывающие подсказки 35

Строка состояния 35

Определение секций в строке состояния 36

Строка сообщений 36

Индикатор состояния 36

Управление строкой состояния 38

Контрольные вопросы: 38

Лабораторная работа 3.1 39

Задание: 39

Ход работы: 39

Создание проекта. 39

Создание ресурсов меню. 39

Добавление переменных-членов. 41

Добавление функции OnMouseMove. 42

Программирование команд контекстного меню. 42

Программирование команд главного меню. 44

Домашняя работа. 48

Лекция 4. Диалоговые окна и стандартные элементы управления 49

Методические рекомендации 49

План 49

Работа с модальным диалоговым окном 50

Стандартные элементы управления 50

Работа с немодальными диалоговыми окнами 53

Пользовательские сообщения 53

Принадлежность диалогового окна 54

Контрольные вопросы 54

Лабораторная работа 4.1 55

Задание: 55

Ход работы: 55

Создание проекта. 55

Создание меню. 55

Создание ресурса “диалоговое окно” 55

Добавление элементов управления. 55

Придание свойств различным элементам управления. 56

Создание класса “диалогового окна”. 57

Добавление переменных-членов класса вашего диалогового окна. 57

Написание инициализирующего кода 58

Присваивание переменным начальных значений. 59

Самостоятельная работа. 59

Домашнее задание. 62

Лекция 5. Обработка сообщений Windows и программирование многопоточных приложений 63

Методические рекомендации 63

План 63

Обработка сообщений в однопоточной программе 64

Передача управления 64

Таймеры 65

Обработка в периоды простоя 65

Программирование многопоточных приложений 66

Функция рабочего потока и запуск потока 66

Общение основного потока с рабочим 67

Общение рабочего потока с основным 68

Синхронизация потоков с использованием событий 69

Блокировка потоков 70

Критические секции 70

Потоки пользовательского интерфейса 72

Контрольные вопросы 73

Лабораторная работа 5.1 74

Задание: 74

Ход работы: 74

Создание проекта. 74

Создание ресурса диалогового окна. 74

Создание класса диалогового окна. 74

Программирование класса диалогового окна. 74

Домашнее задание. 77

Задание для самостоятельной работы 78

Управление процессом 78

Пример 1. 78

2. Замена образа процеса 79

Пример 2. Использование функции exec. 79

Пример 3. Использование неименованного канала. 80

Пример 4. Создание именованного канал с именем "fifo". 80

3. Сигналы. 81

Пример 5. Использование сигналов. 82

Пример 6. Сообщения. 82

Пример 7. Сообщения. 83

Пример 8. Разделение памяти. 85

Пример 9. Использование семафоров. 87

Пример 10. Создание процесса в WINDOWS. 89

Пример 11. Использование неименованного канала. 91

Пример 12. Использование именованного канала. 91

Пример 13. Использование разделяемой памяти File Mapping. 92

Пример 14. Использование Mailslot. 93

Пример 15. Использование событий. 94

Лекция 1. Особенности создания приложений под Windows в среде Visual C++ 6.0 с использованием MFC классов

Методические рекомендации

Так как это первая тема, и в ней встречается очень много новых, для учащихся, терминов то все сказанное будет лучше усваиваться, если приводить яркие примеры. Очень хорошо для этого подходят программы из пакета Microsoft Office.

Понятие “каркас приложения” достаточно сложно для понимания, и в то же время очень важное, поэтому необходимо уделить его объяснению особое внимание.

План лекции

  1. Особенности программирования в Windows

  2. Компоненты среды Visual C++

  3. Каркас приложения и MFC

  4. Особенности программирования в Windows

К особенностям программирования в Windows, можно отнести:

  1. Обработку сообщений

  2. Интерфейс графического устройства

  3. Программирование, основанное на ресурсах

  4. Способы управления памятью

  5. Обработка сообщений

Существенное различие между MS-DOS программой и Windows программой состоит в способе получения введенных пользователем данных: первая вызывает операционную систему, вторая использует поступающие от нее сообщения. Именно поэтому Windows – программы называют приложениями.

Интерфейс графического устройства

Многие MS-DOS – программы записывают данные прямо в видеопамять и порт принтера. Недостаток этого метода состоит в том, что разработчику приходилось создавать отдельные драйверы для каждой из множества моделей видеоплат и принтеров. В Windows включен особый “слой абстракции” - интерфейс графического устройства (Graphics Device Interface, GDI). Драйверы для видеоплат и принтеров представляет сама Windows, благодаря чему вашей программе не надо знать, видеоплата и принтер, какого типа подключены к системе. Вместо того, чтобы обращаться к оборудованию, программа вызывает GDI – функции, ссылающиеся на структуру данных – контекст устройства (device context). Windows сопоставляет структуру контекста устройства с физическим устройством и выдает соответствующие команды ввода/вывода. GDI обеспечивает почти такую же скорость работы, как и прямой доступ к видеопамяти, и позволяет нескольким Windows – программам одновременно работать с дисплеем.

Интерфейс графического устройства (GDI) – подсистема операционной системы Windows, которая отвечает за отображение данных и делает вывод аппаратно-независимым.

Контекст устройства (Device contex – ключевой элемент GDI, служащий для представления физического устройства. С каждым объектом “контекст устройства” С++ связан контекст устройства Windows, идентифицируемый 32 - разрядным описателем типа HDC. Библиотека MFC предоставляет несколько классов контекста устройства.

Программирование, основанное на ресурсах

Программируя в MS-DOS, программисты обычно определяют данные при помощи инициализирующих констант, либо при помощи считывания их из отдельных файлов. Разрабатывая программу под операционную систему Windows, данные обычно хранят в файле ресурсов.

Стандартные ресурсы:

Диалоговые окна (Dialog)

Значки (Icons)

Определения меню (Menu)

Определения панелей инструментов (Toolbar)

Растровые изображения (Bitmap)

Курсоры мыши (Cursor)

Кроме стандартных, программист может сам определить свои собственные ресурсы.

Ресурсы можно создавать двумя способами:

  1. Описать ресурсы вашей программы в текстовом ASCII файле с расширением RC. (Этот способ практически не используется).

  2. Создать ресурс при помощи редактора ресурсов в режиме WYSIWYG (What You See Is What You Get – “что видишь, то и получаешь”).