- •Методические рекомендации
- •План лекции
- •Интерфейс графического устройства
- •Программирование, основанное на ресурсах
- •Управления памятью
- •Документы и их представление
- •Контрольные вопросы
- •Редактирование функций.
- •Изучение работы приложения.
- •Самостоятельная работа.
- •Добавление своего класса.
- •Домашняя работа.
- •Лекция 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 приложениями вы постоянно сталкиваетесь с элементами интерфейса графического устройства (GDI). Всякий раз, когда программа выводит что-нибудь на экран монитора или принтер, она обязана воспользоваться GDI – функциями. Эти функции позволяют рисовать точки, линии, прямоугольники, многоугольники, эллипсы, растровые изображения и выводить текст. Как вам уже должно быть известно – все рисование ведется в контексте устройства, который связан с физическим устройством.
Вспомним что такое контекст устройства
Контекст устройства (Device context) – ключевой элемент GDI, служащий для представления физического устройства. С каждым объектом “контекст устройства” С++ связан контекст устройства Windows, идентифицируемый 32 разрядным описателем типа HDC. Библиотека MFC предоставляет несколько классов контекста устройства. |
Классы контекстов устройств:
Класс |
Описание |
CDC |
Базовый класс для контекстов устройств; используется непосредственно для доступа ко всем экранным и не экранным контекстам устройств, таких как принтеры. |
CWindowDC |
Контекст экрана для всего окна, включая клиентскую и не клиентскую области. |
CСlientDC |
Контекст экрана для клиентской области окна; используется, например, при рисовании в ответ на события от мыши. |
CpaintDC |
Контекст экрана, используемый в функции OnPaint() оконных классов; в конструкторе автоматически вызывается функция BeginPaint, а в деструкторе – EndPaint. |
CMetaFileDC |
Контекст устройства для метафайла Windows, который содержит последовательность команд GDI, необходимых для создания образа. |
Работа с gdi объектами
Каждый тип объектов GDI Windows представлен отдельным классом MFC. CGdiObject – абстрактный базовый класс для классов объектов GDI. Объект GDI представляется С++ объектом некоторого класса , производного от CGdiObject.
Вот эти классы:
Имя класса |
Расшифровка |
Описание |
CBitmap |
Растровое изображение |
Массив битов, в котором каждой точке дисплея соответствует один или несколько байт. Растровые изображения обычно используют для хранения картинок, а также для создания кистей. |
CBrush |
Кисть |
Точечный шаблон, используемый для закраски областей |
CFont |
Шрифт |
Полный набор символов, некоторой гарнитуры и некоторого размера. Обычно шрифты хранятся на диске как ресурсы, причем некоторые шрифты специфичны для определенных устройств. |
CPallete |
Палитра |
Интерфейс преобразования цветов, позволяющий приложениям в полной мере использовать цветовые возможности устройства вывода, не мешая другим приложениям. |
CPen |
Перо |
Инструмент для рисования линий и границ фигур. Можно задать цвет и толщину пера, а также указать, будут ли линии сплошными, пунктирными или штриховыми. |
CRgn |
Регион |
Область, которая представляет собой многоугольник, эллипс или их комбинацию. Регионы можно использовать для закраски, обрезания выводимого изображения и проверки на попадание курсора мыши на определенные участки. |
Правила работы с GDI объектами.
Создать новый GDI объект с нужными свойствами.
Сохранить старый объект этого класса и выбрать в текущем контексте только что созданный.
Произвести графические работы
Восстановить ранее сохраненный объект.
Замечание
Пункты 2 и 4 могут быть заменены на сохранить текущий контекст устройства, и восстановить текущий контекст устройства соответственно. |