- •Методические рекомендации
- •План лекции
- •Интерфейс графического устройства
- •Программирование, основанное на ресурсах
- •Управления памятью
- •Документы и их представление
- •Контрольные вопросы
- •Редактирование функций.
- •Изучение работы приложения.
- •Самостоятельная работа.
- •Добавление своего класса.
- •Домашняя работа.
- •Лекция 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.1
Задание:
Написать программу, работающую с модальными и немодальными диалоговыми окнами. Программа должна предоставлять пользователю удобный интерфейс для ввода анкетных данных, а также информацию о нем в удобной форме.
Ход работы:
Создание проекта.
Создайте проект по той же схеме, что вы использовали на предыдущих занятиях. Дайте ему название L4_1.
Создание меню.
Измените предложенный ресурс “меню” так, чтобы он содержал следующие пункты: Файл->Выход, Диалог->Модальный, Диалог->Немодальный, О программе.
Создание ресурса “диалоговое окно”
Для того чтобы добавить ресурс “диалоговое окно” необходимо выполнить команду Insert-> Resource (Ctrl+R). После этого в появившемся окне нужно выбрать пункт Dialog, и нажать клавишу New.
Добавление элементов управления.
Перейдите на вкладку Resource View, и выберете диалоговое окно с идентификационным номером IDD_DIALOG1. Добавьте элементы управление на ваше диалоговое окно, щелкая мышью сначала на панели элементов управления (controls), на нужном элементе, а затем в том месте вашего диалогового окна, куда бы вы хотели добавить этот элемент.
Элементы управления:
Вид диалогового окна:
Придание свойств различным элементам управления.
Для того, чтобы установить некоторые свойства какого-нибудь элемента управления необходимо щелкнуть на нем правой клавишей и в появившемся контекстном меню выбрать пункт Properties. При этом появиться окно следующего вида:
Установите у всех элементов свойство Caption (Надпись) в соответствии с надписями показанными на рисунке 4.1.2. У элемента “Собак” установите свойство Group (это нужно для того, чтобы переключатели составляли группу, и нельзя было выбрать два элемента одновременно). У комбинированного списка на вкладке Data, введите элементы которые будут в нем отображаться (для перехода на следующую строку нажимайте Ctrl+Enter) (Рис. 4.1.4).
Создание класса “диалогового окна”.
Щелкните на вашем диалоговом окне правой клавишей мыши и в появившемся контекстном меню выберете пункт ClassWizard. После этого Class Wizard сообщит вам, что для вашего ресурса диалогового окна не создано класса и предложит его создать. Как только вы ответите утвердительно перед вами возникнет окно, где нужно будет ввести имя класса а также базовый класс (обычно это CDialog) (Рис.4.1.5) Стоит заметить, что имена классов в Visual C++ принято начинать с C.
Добавление переменных-членов класса вашего диалогового окна.
У каждого элемента управления есть свой идентификатор. И для того чтобы можно было работать с этим элементом управления, необходимо идентификатору сопоставить переменную-член класса диалогового окна. Сопоставляемые переменные-члены могут быть двух категорий: Value(Значение) – представляющие значения вырабатываемые конкретными элементами управления, и Control(Управление) – представляющие классы конкретных элементов управления. Для того чтобы добавить переменные-члены вашего класса необходимо запустить ClassWizard, и перейти на вкладку Member Variables, после чего нажать кнопку Add Variable(Рис. 4.1.6). Стоит заметить, что имена переменных-членов в Visual C++ принято начинать с m_.