- •Методические рекомендации
- •План лекции
- •Интерфейс графического устройства
- •Программирование, основанное на ресурсах
- •Управления памятью
- •Документы и их представление
- •Контрольные вопросы
- •Редактирование функций.
- •Изучение работы приложения.
- •Самостоятельная работа.
- •Добавление своего класса.
- •Домашняя работа.
- •Лекция 2. Основы программирования. Работа с классом Вид. Методические рекомендации:
- •Интерфейс графического устройства
- •Работа с gdi объектами
- •Пример создания нового gdi объекта
- •Режимы преобразования координат
- •Режимы преобразования координат с постоянным масштабом
- •Режимы преобразования координат с переменным масштабом
- •Замечание
- •Координатные пространства mfc
- •Пример использования режимов преобразования координат
- •Работа с окнами, содержащими полосы прокрутки
- •Линейки прокрутки
- •Различные способы прокрутки
- •Прием ввода с клавиатуры
- •Контрольные вопросы
- •Обработка сообщений от мыши.
- •Задание для самостоятельной домашней разработки.
- •Лекция 3. Меню. Панели инструментов и строки состояния Методические рекомендации
- •Меню Windows
- •Обновление командного пользовательского интерфейса
- •Класс cMenu
- •Создание контекстных меню
- •Панели элементов управления и каркас приложений
- •Панель инструментов
- •Растровое изображение панели инструментов
- •Состояния кнопок Любая кнопка может находиться в следующих состояниях
- •Всплывающие подсказки
- •Строка состояния
- •Определение секций в строке состояния
- •Строка сообщений
- •Индикатор состояния
- •Управление строкой состояния
- •Контрольные вопросы:
- •Добавление переменных-членов.
- •Добавление функции OnMouseMove.
- •Программирование команд контекстного меню.
- •Программирование команд главного меню.
- •Домашняя работа.
- •Лекция 4. Диалоговые окна и стандартные элементы управления Методические рекомендации
- •Работа с модальным диалоговым окном
- •Стандартные элементы управления
- •Работа с немодальными диалоговыми окнами
- •Пользовательские сообщения
- •Принадлежность диалогового окна
- •Контрольные вопросы
- •Создание класса “диалогового окна”.
- •Добавление переменных-членов класса вашего диалогового окна.
- •Написание инициализирующего кода
- •Присваивание переменным начальных значений.
- •Самостоятельная работа.
- •Домашнее задание.
- •Лекция 5. Обработка сообщений Windows и программирование многопоточных приложений Методические рекомендации
- •Обработка сообщений в однопоточной программе
- •Передача управления
- •Таймеры
- •Обработка в периоды простоя
- •Программирование многопоточных приложений
- •Функция рабочего потока и запуск потока
- •Общение основного потока с рабочим
- •Общение рабочего потока с основным
- •Синхронизация потоков с использованием событий
- •Блокировка потоков
- •Критические секции
- •Потоки пользовательского интерфейса
- •Контрольные вопросы
- •Домашнее задание.
- •Задание для самостоятельной работы
- •Управление процессом Пример 1.
- •2. Замена образа процеса Пример 2. Использование функции exec.
- •Пример 3. Использование неименованного канала.
- •Пример 4. Создание именованного канал с именем "fifo".
- •3. Сигналы.
- •Пример 5. Использование сигналов.
- •Пример 6. Сообщения.
- •Пример 7. Сообщения.
- •Пример 8. Разделение памяти.
- •Пример 9. Использование семафоров.
- •Пример 10. Создание процесса вWindows.
- •Пример 11. Использование неименованного канала.
- •Пример 12. Использование именованного канала.
- •Пример 13. Использование разделяемой памяти File Mapping.
- •Пример 14. Использование Mailslot.
- •Пример 15. Использование событий.
Управления памятью
Программируя под Windows, программисту теперь не стоит беспокоиться о нехватке и распределении памяти.
Каждая программа получает в свое распоряжение частное 4 – гигабайтное виртуальное адресное пространство, к каждому байту которого, она может обращаться используя один единственный 32 – разрядный линейный адрес.
Компоненты среды Visual C++
Среда программирования Visual C++ состоит и следующих основных компонентов: Редактор исходного текста Редактор ресурсов Компилятор С/С++ Компилятор ресурсов Компоновщик Отладчик Мастер приложений (AppWizard) Мастер классов (ClassWizard) Галерея (Gallery) Microsoft Foundation Class Library (MFC) Microsoft Active Template Library (ATL) |
Компилятор ресурсов – компилирует текстовые файлы с описанием ресурсов (RS) в двоичные RES – файлы. |
Компоновщик – служит для формирования исполняемого Exe файла. Сначала он считывает OBJ и RES файлы, сформированные компилятором С/С++ и компилятором ресурсов, а затем обращается к LIB – файлам за MFC кодом. |
AppWizard – генератор кода, создающий рабочую заготовку Windows – приложения с теми компонентами, именами классов, которые программист задает в его диалоговых окнах. |
ClassWizard – программа, реализованная как DLL и доступная через меню View среды разработки. Она избавляет программистов от нудной работы, связанной с кодированием классов Visual С++. При помощи ClassWizard можно легко: Создать новый класс Создать новый обработчик сообщений Создать виртуальную функцию |
Галерея (Gallery) (или, официально, Components and Controls Gallery – галерея компонентов и элементов управления) позволяет использовать одни и те же программные компоненты сразу в нескольких проектах. Галерея оперирует с тремя типами модулей: Элементы управления ActiveX Модули исходного кода на С++ Компоненты Visual C++ |
Элементы управления ActiveX
При добавлении в систему элемента управления ActiveX (OCX, ранее элемента управления OLE) в реестре Windows создается новая запись. Все зарегистрированные OCX появляются в окне Gallery, благодаря чему их можно выбирать в любом проекте.
Модули исходного кода на С++
Создав новый класс или ресурс, можно добавить его код в Галерею, после чего его можно копировать в другие проекты.
Компоненты Visual C++
Галерея может содержать инструменты для добавления в проект каких-либо функций. Такого рода инструмент мог бы автоматизировать внесение в существующий проект новых классов, функций, переменных членов и ресурсов. Некоторые такие компоненты (например, обработка времени простоя, поддержка палитры, экран заставки) поставляются непосредственно Microsoft, в составе Visual C++, другие - сторонними фирмами.
Microsoft Foundation Class Library (MFC) MFC – это библиотека классов, которая определяет каркас приложений. |
Microsoft Active Template Library (ATL) ATL – представляет собой средство построения элементов управления ActiveX. Элементы управления ActiveX можно создавать и при помощи MFC, но они получаются слишком громоздкие. |
Каркас приложения MFC
В современных средах программирования существует два подхода: Каркасный (Visual C++). При каркасном подходе изначально приложение создается на основе каркаса, и программист добавляет в него функциональность. При этом необходимо хорошо представлять структуру приложения. Компонентный (Delphi, C++ Builder, Visual Basic). В данном случае приложение создается на основе одного каркаса, который не дается программисту для изменения, а вся функциональность создается путем добавления и изменения программных компонентов. |
Именно поэтому компонентные среды программирования легче для изучения, но у каркасных больше возможностей для профессионального программирования.
Дадим определение каркасу приложений
Каркас приложений – это надмножество библиотеки классов. Его отличие от обычной библиотеки классов состоит в том, что обычная библиотека представляет собой изолированный набор классов, предназначенных для использования в любой программе, а каркас приложений определяет структуру самой программы. |
Одно из главных преимуществ, при использовании каркасных приложений, состоит в том, что каркасные приложения имеют стандартную структуру. Создав Windows – приложение на базе библиотеки MFC, можно спокойно передать ее другому программисту для поддержки, а самому заняться разработкой новой программы.