- •Методические рекомендации
- •План лекции
- •Интерфейс графического устройства
- •Программирование, основанное на ресурсах
- •Управления памятью
- •Документы и их представление
- •Контрольные вопросы
- •Редактирование функций.
- •Изучение работы приложения.
- •Самостоятельная работа.
- •Добавление своего класса.
- •Домашняя работа.
- •Лекция 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. Использование событий.
Редактирование функций.
Добавьте во все функции, кроме функций AssertValid(), сформированные AppWizard макрос TRACE. Этот макрос работает аналогично команде print, только выводит сообщения в отладочное окно. Макрос должен быть записан в следующем виде:
TRACE("Запускаю на исполнение функцию <Имя функции> \n");
Изучение работы приложения.
Пришло время начать изучение того, как работает созданное AppWizard приложение. Для начала необходимо установить параметры трассировки программы. Для этого выполните команду главного меню Tools -> MFC Tracer и в появившемся диалоговом окне установите галочку напротив Enable tracing (Рис. 1.1.8).
После этого запустите программу в режиме отладки. Для этого выполните команду главного меню: Build ->Start Debug->Go (F5). После чего перейдите на вкладку Debug окна Output и проследите за выводом сообщений TRACE.
Самостоятельная работа.
Ответьте письменно на следующие вопросы:
Какие функции выполняются после запуска приложения ?
Какие функции выполнятся, если свернуть и развернуть окно ?
Какие функции выполнятся, если изменить размеры окна ?
Какие функции выполнятся, если сделать окно неактивным, а затем активным ?
Какие функции выполнятся, если выйти из приложения ?
Добавление своего класса.
Добавим класс для работы с комплексными числами. Для того чтобы добавить новый класс необходимо выполнить команду главного меню: Insert->New Class… В появившемся диалоговом окне (Рис. 1.1.9) указать тип класса Generic Class и ввести его имя. Следует помнить, что имена классов в Visual C++ принято начинать с заглавной буквы C.
Для того чтобы добавить переменные-члены и функции-члены в Ваш класс необходимо щелкнуть правой клавишей мыши на имени класса, и в появившемся контекстном меню (Рис. 1.1.10) выбрать пункт Add member variable (для добавления переменных), или пункт Add member function (для добавления функций.)
Появиться диалоговое окно (Рис. 1.1.11), в котором нужно ввести тип, имя переменной (прототип функции), а также указать модификатор доступа.
После того как создадите класс, присоедините его к классу CL1_1View, командой #include “<имя файла заголовков>”. Затем добавьте экземпляр вашего класса в класс CL1_1View, подумайте куда лучше вставить код тестирующий ваш класс. Воспользуйтесь знаниями, полученными Вами в начале данной лабораторной работы. Для вывода данных используйте макрос TRACE и запускайте программу в отладочном режиме.
Домашняя работа.
Доработайте созданный Вами класс, добавив в него функции нахождения суммы, произведения, частного, разности комплексных чисел.
Лекция 2. Основы программирования. Работа с классом Вид. Методические рекомендации:
Для лучшего понимания контекст устройства можно сравнить с холстом, а программирование с работой художника. Сначала необходимо подготовить инструмент: карандаши и кисти, затем нарисовать картину, и после этого аккуратно убрать за собой и сложить все кисти и карандаши в сумку.
При объяснении работы с GDI объектами нужно обратить внимание студента на необходимость восстанавливать старый контекст устройства, а то это может грозить неправильной работой некоторых приложений.
Необходимо акцентировать внимание студента на различие между режимами MM_ISOTROPIC и MM_ANISOTROPIC. Хорошим примером может служить тот факт, что в режиме MM_ISOTROPIC эллипс всегда будет кругом, а прямоугольник квадратом.
Следует обратить внимание студентов на то, что функции, работающие с логическими координатами, имеют в своем названии слово Window, а функции, работающие с физическими координатами, слово Viewport.
План:
Интерфейс графического устройства
Работа с GDI объектами
Режимы преобразования координат
Работа с окнами, содержащими полосы прокрутки