Рекомендуем

Ключевые слова:
C++Win32 APIСи++
Проектирование интерфейса пользователя средствами Win32 APIГанеев Р.М. Проектирование интерфейса пользователя средствами Win32 API
Проектирование интерактивных Web-приложенийГанеев Р.М. Проектирование интерактивных Web-приложений
Язык С++ и объектно-ориентированное программирование в С++. Лабораторный практикумАшарина И.В., Крупская Ж.Ф. Язык С++ и объектно-ориентированное программирование в С++. Лабораторный практикум

Книга

Программирование WinAPI-приложений на С++

Курс лекций
Тиражирование книги начато в 2021 г.
300 стр.
Формат 70x100/16 (170x240 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0909-0
ББК 32.97
УДК 004.438(075.8)
Гриф
Рекомендовано Региональным отделением в Уральском федеральном округе (РО в УрФО) Федерального учебно-методического объединения ВУЗов Российской Федерации по информационной безопасности (ФУМО ИБ) в качестве учебного пособия для специальностей и направлений подготовки укрупненной группы специальностей 10.00.00 – «Информационная безопасность»
Аннотация

Представлен начальный курс низкоуровневого программирования на С++ для Windows c библиотекой WinAPI. Рассмотрены структура классического Windows-приложения, простейшие графические примитивы, стандартные элементы управления, модальные и немодальные окна; создание и использование статических и динамических библиотек; работа с текстовыми и графическими файлами. Особое внимание уделено многопоточным приложениям – создание и уничтожение процессов и потоков, механизмы синхронизации. Материал иллюстрирован многочисленными примерами, которые тестировались в Visual Studio 2019. Приведенные в книге примеры доступны для скачивания на сайте издательства.

Для студентов и аспирантов высших учебных заведений, изучающих программирование на языке С++, а также преподавателей, читающих эти дисциплины. Будет полезно читателям, самостоятельно изучающим программирование на языке С++.

Оглавление

ВВЕДЕНИЕ


1. ВВЕДЕНИЕ В ОКОННЫЙ ИНТЕРФЕЙС
Проект Windows-приложения
Соглашения WinAPI
Головная функция WinMain()
Оконная функция
Стандартный каркас классического Windows-приложения
Windows GDI
Контекст устройства
Режимы отображения
Контрольные вопросы
Задание для самостоятельной работы

2. ГРАФИЧЕСКИЕ ПОСТРОЕНИЯ
Графические объекты
Перо
Кисть
Косметические и геометрические перья
Графические примитивы
Режимы отображения
Точка
Линии
Кривые
Заполненные фигуры
Преобразование системы координат
Определение размера окна
Задание логической системы координат
Функции преобразования логических координат
Поворот системы координат
Вывод текста
Контрольные вопросы
Задание для самостоятельной работы

3. РАБОТА С МЫШЬЮ, КЛАВИАТУРОЙ
Сообщения мыши
Сообщения клавиатуры
Шрифт
Метрика текста
Редактирование строки текста
Контрольные вопросы
Задание для самостоятельной работы

4. РЕГИОНЫ И ПУТИ
Функции прямоугольников
Регионы
Регион как область отсечения
Пути
Манипуляция областью отсечения
Примеры программ, манипулирующих областью отсечения
Контрольные вопросы
Задание для самостоятельной работы

5. РЕСУРСЫ ПРИЛОЖЕНИЯ
Таблица текстовых строк
Иконки
Клавиши-акселераторы
Меню
Контекстное меню
Диалоговые окна
Создание диалогового окна
Контрольные вопросы
Задание для самостоятельной работы

6. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ
Краткий обзор элементов управления
Общие свойства
Статический элемент управления «static»
Окно редактирования «edit»
Кнопки «button»
Список «listbox», комбинированный список «combobox»
Контрольные вопросы
Задание для самостоятельной работы

7. НЕМОДАЛЬНЫЙ ДИАЛОГ
Окно сообщений
Еще обэлемент ах управления
Сообщение LB DIR для List Box
Контрольные вопросы
Задание для самостоятельной работы

8. ОКНА
Z-порядок
Дочерние окна
Всплывающие окна
Прозрачные окна
Контрольные вопросы
Задание для самостоятельной работы

9. УЛУЧШЕННЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС
Диалоговые окна общего использования
Проект создания маленького текстового редактора
Панель инструментов
Строка состояния StatusBar
Окно редактирования EditBox
Диалоговые окна GetOpenFileName() и GetSaveFileName()
Чтение файла
Сохранение файла
Вывод документа на принтер
Контрольные вопросы
Задание для самостоятельной работы

10. ВЫВОД И ФОРМАТИРОВАНИЕ ТЕКСТА
Вывод текста под углом
Форматирование параграфа
Контрольные вопросы
Задание для самостоятельной работы

11. СКРОЛЛИНГ
Простой просмотрщик файлов со скроллингом
Чтение файла с автоматическим определением кодировки
Вертикальный и горизонтальный скроллинг
Вывод текста в окно
Улучшенный алгоритм скроллинга
Контрольные вопросы
Задание для самостоятельной работы

12. ГРАФИЧЕСКИЕ ФАЙЛЫ
Отображение bmp-файла в окне
Загрузка bmp-файла
Создание контекста памяти
Вывод изображения в окно со скроллингом
Функция BitBlt()
Использование bmp-файла как фонового изображения
Функция StretchBlt() для вывода изображения в заданный прямоугольник
Функция PlgBlt() для вывода изображения в заданный параллелограмм
Функция MaskBlt()
Контрольные вопросы
Задание для самостоятельной работы

13. ВИРТУАЛЬНЫЕ ОКНА, МЕТАФАЙЛЫ И ПРОЧЕЕ
Анимация с виртуальным окном
Метафайлы
Градиентная закраска
Отображение «сжатых графических файлов» формата jpg, gif
Контрольные вопросы
Задание для самостоятельной работы

14. СТАТИЧЕСКИЕ И ДИНАМИЧЕСКИЕ БИБЛИОТЕКИ
Статические библиотеки
Использование статической библиотеки
Библиотеки динамической компоновки (Dynamic Link Libraries, DLL)
Использование dll-файла, неявное связывание
Явное связывание
Контрольные вопросы
Задание для самостоятельной работы

15. ПРОЦЕССЫ И ПОТОКИ
Процессы
Создание процесса. Функция CreateProcess()
Завершение процесса
Пример создания процесса
Потоки
Завершение потока
Пример многопоточного приложения
Функции С++ для создания и завершения потока
Измерение времени работы процесса, потока
Контрольные вопросы
Задание для самостоятельной работы

16. УПРАВЛЕНИЕ ПОТОКАМИ
Приоритеты потоков
Синхронизация потоков в пользовательском режиме
Interlocked-функции
Критические секции и тонкая блокировка
Пример приложения с синхронизацией критической секцией
Барьер синхронизации
Пример синхронизации барьером
Классы библиотеки STL для работы с потоками
Класс thread
Класс mutex
Контрольные вопросы
Задание для самостоятельной работы

17. СИНХРОНИЗАЦИЯ ПОТОКОВ ПРИ ПОМОЩИ ОБЪЕКТОВ ЯДРА
Wait-функции
Новые Wait-функции
Событие
Семафор
Мьютекс
Ожидаемый таймер
Контрольные вопросы
Задание для самостоятельной работы

18. ОБМЕН ДАННЫМИ МЕЖДУ ПРОЦЕССАМИ
Разделяемая память
Файлы, проецируемые в память
Пример проекции файла
Совместный доступ к данным несколькими процессами
Передача данных через сообщение
Контрольные вопросы
Задание для самостоятельной работы

19. ПУЛЫ ПОТОКОВ
Пул потоков по умолчанию
Управление рабочими элементами
Пользовательский пул потоков
Вызов функции при освобождении объекта ядра
Вызов функции через определенный интервал времени
Контрольные вопросы
Задание для самостоятельной работы

20. РАБОТА С ФАЙЛАМИ
Функции работы с каталогами
Функции работы с файлами
Создание и открытие файла
Получение информации о файле
Установка указателя в файле
Функции чтения и записи
Пример работы с файлами
Функции управления файлами
Контрольные вопросы
Задание для самостоятельной работы

ЛИТЕРАТУРА