Введение
Занятие 1.
Знакомство с Visual Studio .NET
Создание первого Windows-приложения

Упражнение 1. Создание проекта
Упражнение 2. Работа в окне Start Page, настройка параметров среды
Упражнение 3. Управление проектами в окне Solution Explorer
Упражнение 4. Использование редактора кода
Компиляция и отладка приложения

Упражнение 5. Компиляция, компоновка и запуск приложения
Упражнение 6. Работа со списком задач
Упражнение 7. Отладка приложения
Окна среды Visual Studio .NET

Упражнение 8. Управление окнами
Ресурсы проектов и решений

Упражнение 9. Добавление ресурсов в проект
Упражнение 10. Добавление проектов в решение
Операции с файлами и получение справки

Упражнение 11. Сохранение решений, проектов и файлов
Упражнение 12. Закрытие решений, проектов и файлов
Упражнение 13. Открытие существующих решений и проектов
Упражнение 14. Выход из Visual Studio .NET
Упражнение 15. Использование справки Visual C++
Подведение итогов

Занятие 2.
Создание графического редактора
Генерирование исходных файлов приложения

Упражнение 1. Использование мастера MFC Application Wizard
Определение и инициализация переменных класса представления

Упражнение 2. Добавление переменных в класс представления

Упражнение 3. Инициализация переменных-членов класса представления
Добавление обработчиков сообщений
Сообщения Windows
Командные сообщения
Карта сообщений

Упражнение 4. Создание обработчика сообщения OnLButtonDown()
Упражнение 5. Создание обработчика сообщения OnMouseMove()
Упражнение 6. Создание обработчика сообщения OnLButtonUp()
Параметры сообщений о событиях мыши
Отображение песочных часов
Работа с ресурсами и настройка окна программы

Упражнение 7. Редактирование ресурса меню
Упражнение 8. Редактирование ресурса значка
Упражнение 9. Настройка окна программы
Подведение итогов

Занятие 3.
Реализация документа
Сохранение графических данных и перерисовка окна

Упражнение 1. Сохранение данных объекта документа
Упражнение 2. Перерисовка окна
Добавление команд в меню

Упражнение 3. Добавление команд Undo и Delete All
Упражнение 4. Удаление данных документа
Создание кода поддержки команд меню

Упражнение 5. Обработка команды Delete All
Упражнение 6. Обработка команды Undo
Подведение итогов

Занятие 4.
Реализация средств ввода-вывода
Создание команд меню File

Упражнение 1. Добавление команд в меню File
Упражнение 2. Определение расширения имени сохраняемых файлов Как обеспечивается работа команд меню File
Сериализация данных документа

Упражнение 3. Создание функции сериализации
Использование флага изменений

Упражнение 4. Установка флага изменений
Технология drag-and-drop

Упражнение 5. Реализация поддержки технологии drag-and-drop
Регистрация типа файла

Упражнение 6. Внесение данных в системный реестр Windows
Подведение итогов

Занятие 5.
Создание текстового редактора
Создание шаблона приложения и его редактирование

Упражнение 1. Создание шаблона приложения MiniEdit

Упражнение 2. Редактирование ресурса меню

Упражнение 3. Редактирование таблицы быстрых клавиш

Упражнение 4. Редактирование значка приложения
Добавление средств ввода-вывода в программу MiniEdit

Упражнение 5. Определение ресурсов меню

Упражнение 6. Создание кода поддержки команд меню
Функции Read() и Write() класса CArchive
Другие методы реализации ввода-вывода файлов
Подведение итогов

Занятие 6.
Прокрутка и разделение окон представления
Создание средств прокрутки окна

Упражнение 1. Изменение базового класса для класса представления приложения
Преобразование координат

Упражнение 2. Создание кода, обеспечивающего преобразование координат
Прокрутка и перемещение курсора в окне представления

Упражнение 3. Ограничение области перемещения курсора в окне представления
Изменение формы курсора
Создание средств разделения окна

Упражнение 4. Добавление средств разделения окна в созданное приложение

Упражнение 5. Добавление средств разделения окна в новое приложение
Обновление разделяемых окон

Упражнение 6. Создание кода, обеспечивающего обновление окна

Упражнение 7. Эффективная перерисовка
Подведение итогов

Занятие 7.
Панели инструментов и строка состояния
Добавление панели инструментов

Упражнение 1. Добавление панели инструментов и строки состояния в новое приложение

Упражнение 2. Добавление панели инструментов в существующее приложение
Упражнение 3. Создание кнопок панели инструментов
Добавление новых команд меню

Упражнение 4. Подключение панели инструментов к окну-рамке
Упражнение 5. Создание обработчиков сообщений для кнопок и команд меню

Упражнение 6. Создание строки состояния
Подведение итогов

Занятие 8.
Модальные и немодальные диалоговые окна
Создание диалоговых окон

Упражнение 1. Создание ресурса шаблона диалогового окна
Классы диалоговых окон
Управление диалоговыми окнами
Обеспечение обмена данными с диалоговыми окнами
Манипулирование элементами управления
Связывание методов диалогового окна с элементами управления

Упражнение 2. Создание класса диалогового окна

Упражнение 3. Создание обработчиков сообщений для элементов управления

Упражнение 4. Отображение диалогового окна

Упражнение 5. Отображение форматированного текста в окне представления
Создание немодальных диалоговых окон
Подведение итогов

Занятие 9.
Диалоговые окна со вкладками
Классы диалоговых окон со вкладками

Упражнение 1. Создание проекта и ресурсов шаблонов диалоговых окон

Упражнение 2. Создание классов диалоговых окон и добавление переменных-членов

Упражнение 3. Изменение меню и создание обработчиков сообщений

Упражнение 4. Инициализация переменных
Стандартные диалоговые окна

Упражнение 5. Отображение стандартных диалоговых окон
Подведение итогов

Занятие 10.
Диалоговые и многодокументные приложения
Простое диалоговое приложение

Упражнение 1. Генерирование диалогового приложения и создание ресурса шаблона диалогового окна

Упражнение 2. Создание обработчиков сообщений
Программа просмотра формы

Упражнение 3. Генерирование программы просмотра формы и создание ее ресурсов

Упражнение 4. Добавление переменных и обработчиков сообщений
Многодокументное приложение

Упражнение 5. Генерирование кода MDI-программы MiniEdit
Подведение итогов

Занятие 11.
Отображение текстовой информации
Установка и сохранение атрибутов шрифта

Упражнение 1. Создание программы TextDemo

Упражнение 2. Создание обработчика для команды выбора атрибутов шрифта
Отображение форматированного текста
Функции класса CDC для работы с текстом

Упражнение 3. Создание кода, отображающего текст

Упражнение 4. Использование стандартных шрифтов

Упражнение 5. Поддержка средств прокрутки
Подведение итогов

Занятие 12.
Ввод текстовой информации
Чтение кодов управляющих клавиш

Упражнение 1. Обработка сообщения WM_KEYDOWN
Чтение кодов символьных клавиш и отображение символов

Упражнение 2. Обработка сообщения WM_CHAR
Управление курсором ввода

Упражнение 3. Создание функций управления курсором
Подведение итогов

Занятие 13.
Интерфейс графических устройств
Контексты устройств и объекты GDI
Объекты контекста устройства и выбор инструментов рисования
Создание инструментов рисования
Режимы отображения
Установка графических атрибутов 3

Упражнение 1. Создание объекта контекста устройства, инструментов рисования и демонстрация режимов отображения
Создание изображений путем закрашивания пикселов

Упражнение 2. Создание растровых узоров
Подведение итогов

Занятие 14.
Использование функций рисования
Функции рисования графических примитивов
Рисование прямых и кривых линий
Рисование замкнутых фигур

Упражнение 1. Демонстрация графических примитивов

Упражнение 2. Рисование линий разной толщины, разного цвета и типа

Упражнение 3. Создание иерархии классов геометрических фигур

Упражнение 4. Рисование замкнутых фигур
Подведение итогов

Занятие 15.
Печать и предварительный просмотр
Функции печати и предварительного просмотра

Упражнение 1. Реализация функций печати и предварительного просмотра

Упражнение 2. Многостраничная печать
Подведение итогов

Приложение А.
Основы программирования на языке С++
Понятие объекта
Понятие класса
Интерфейс и реализация класса
Экземпляр класса
Доступ к членам класса
Инкапсуляция
Преимущества применения инкапсуляции
Конструкторы и деструкторы
Конструктор без параметров
Конструктор инициализации
Конструктор копирования
Конструктор преобразования
Инициализация объектов-членов класса
Деструкторы
Вызов конструкторов и деструкторов
Массивы объектов
Встроенные функции-члены
Указатель this
Статические члены класса
Наследование
Базовые и производные классы
Конструкторы производных классов
Доступ к наследуемым переменным
Создание иерархии классов
Преимущества наследования
Указатели на объекты базовых классов
Полиморфизм
Применение виртуальных функций для управления объектами классов
Применение виртуальных функций для модификации базовых классов
Механизм переопределения
Перегрузка операторов
Дружественные функции и классы

Приложение Б.
Сообщения и макросы

Приложение В.
Курсоры, стили окон и панелей инструментов

Приложение Г.
Объекты графического интерфейса устройств
Алфавитный указатель