- •Методические рекомендации
- •План лекции
- •Интерфейс графического устройства
- •Программирование, основанное на ресурсах
- •Управления памятью
- •Документы и их представление
- •Контрольные вопросы
- •Редактирование функций.
- •Изучение работы приложения.
- •Самостоятельная работа.
- •Добавление своего класса.
- •Домашняя работа.
- •Лекция 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. Использование событий.
Документы и их представление
Как правило, большинство приложений содержат два класса: “документ” (document) и “вид” (view). Такая архитектура “документ – вид” является стержнем каркаса приложений.
Архитектура “документ – вид” отделяет данные от их представления. Очевидное преимущество этого подхода – возможность представить одни и те же данные по разному. |
Документом будем называть класс, отвечающий за обработку и сохранение данных. В каркасе приложения MFC этот класс имеет имя: С<имя проекта>Doc |
Видом будем называть класс, отвечающий за представление данных, на устройстве вывода. В каркасе приложения MFC этот класс имеет имя: С<имя проекта>View |
Контрольные вопросы
Что называется “интерфейсом графического устройства” ?
Что такое контекст устройства и как он связан с интерфейсом графического устройства ?
Какие компоненты среды Visual C++ Вы знаете?
Что такое MFC?
Что такое ATL и чем она отличается от MFC?
Какие подходы к построению современных приложений вы знаете, и чем они различаются?
Что называется “Документом”?
Что называется “Видом”?
Лабораторная работа 1.1
Задание:
Создать при помощи AppWizard MFC-проект и изучить его работу. Добавить в созданный проект свой собственный класс для работы с комплексными числами.
Ход работы:
Создание проекта.
Для того чтобы создать новый проект необходимо выполнить команду меню File->New. В появившемся окне (Рис. 1.1.1) необходимо установить тип проекта MFC AppWizard (exe), а также ввести имя нового проекта.
После чего необходимо нажать кнопку “Ок” и перейти к первому из шести шагов создания приложения (Рис. 1.1.2). На данном этапе Вам необходимо определить тип будущего приложения:
Однодокументное приложение (Single document).
Многодокументное приложение (Multiple document).
Приложение на базе диалогового окна (Dialog based).
Выбирайте однодокументное приложение и переходите к следующему шагу.
На втором шаге (Рис. 1.1.3) Вы должны указать собираетесь ли Вы в своем приложении устанавливать поддержку баз данных. Выберете пункт None и переходите к третьему шагу.
На третьем шаге (Рис. 1.1.4) AppWizard предлагает Вам выбрать какие компоненты документа должно поддерживать Ваше приложение. Откажитесь от всего, выбрав пункт None, и переходите к четвертому шагу.
На данном этапе (Рис. 1.1.5) AppWizard предлагает вам выбрать какие компоненты вы хотели бы подключить в Вашему приложению. Здесь можно выбрать Docking Toolbar (Стыкуемая панель), Initial status bar (Строка состояния) и т.д. Но для первого приложения нам будет достаточно выбрать 3D controls (3-х мерные элементы управления) и можно переходить к следующему этапу.
На пятом шаге (Рис. 1.1.6) AppWizard попросит Вас выбрать стиль Вашего будущего приложения. Оставьте все установки по умолчанию и переходите к последнему этапу.
На последнем шаге (Рис. 1.1.7) AppWizard сформирует базовые классы вашего приложения. У вас есть возможность выбрать их название, а также имена файлов в которых они будут храниться. Кроме того для некоторых классов есть возможность выбрать базовый класс. Оставьте все как есть и жмите кнопку Finish.