Эксоцман
на главную поиск contacts

Win32 API. Эффективная разработка приложений

Опубликовано на портале: 08-09-2006
Санкт-Петербург: Питер, 2006, 576 с.
В этой книге изложены основополагающие принципы программирования для Windows на языке C/C++ с применением Win32 API. Книга ориентирована на широкий круг читателей: от начинающих программистов, студентов вузов, аспирантов и преподавателей до профессионалов в области программирования, желающих освоить специальные средства Win32 API. Практика показывает, что те программисты, которые начинают осваивать программирование для Windows сразу на уровне MFC или Windows Forms, не имея никакого опыта работы с Win32 API, сталкиваются с серьезными проблемами, как только дело доходит до создания реальных приложений. Напротив, опыт программирования с Win32 API позволяет осваивать более высокие технологии гораздо гармоничней и продуктивней. Владение базовыми знаниями Win32 API является надежной основой для вашего профессионального роста в сфере программирования.

Предисловие

Кому адресована эта книга

Как работать с книгой

Благодарности

От издательства

Глава 1. «Hello, World!», или Первые шаги к пониманию основных концепций Windows

  • Базовые концепции
  • Графический интерфейс пользователя
  • Многозадачность
  • Управление памятью
  • Независимость от аппаратных средств
  • Вызовы функций и DLL
  • Объектно-ориентированное программирование
  • Типы данных Win32
  • Архитектура, управляемая событиями
  • Оконная процедура
  • Оконные классы
  • Цикл обработки сообщений
  • Наипростейшая программа для Windows
  • Программа «Hello, world!» — первый вариант
  • Файл исходного текста программы
  • Регистрация класса окна
  • Создание окна
  • Использование функции CreateWindowEx
  • Отображение окна на экране
  • Обработка сообщений
  • Оконная процедура
  • Программа «Hello, world!» — второй вариант
  • Функции поддержки окон
  • Часто используемые сообщения
  • Модификация характеристик окна
  • Особенности программирования для Windows
  • Синхронные и асинхронные сообщения
  • Посылка сообщений из приложения
  • Использование глобальных или статических переменных
  • Получение дескриптора экземпляра приложения
  • Предотвращение зависания приложения
    в случае медленной обработки отдельных событий
  • Использование утилиты Spy++

Глава 2. GDI — графический интерфейс устройства. Рисование линий, фигур, текст

  • Контекст устройства
  • Типы контекстов устройства
  • Регионы Windows. Отсечение
  • Контекст дисплея
  • Использование сообщения WM_PAINT
  • Контекст принтера
  • Контекст в памяти (совместимый контекст)
  • Метафайловый контекст
  • Информационный контекст
  • Системы координат и преобразования
  • Экранные, оконные и клиентские координаты
  • Типы координатных систем
  • Физическая система координат
  • Система координат устройства
  • Страничная система координат и режимы отображения
  • Мировая система координат
  • Получение информации о возможностях устройства
  • Управление цветом. Вывод пиксела
  • Цветовое пространство HLS
  • Цветовое пространство RGB
  • Определение цвета при работе с палитрой
  • Вывод пикселов
  • Атрибуты контекста устройства, влияющие на рисование
  • Режим рисования. Бинарные растровые операции
  • Режим смешивания фона и цвет фона графического элемента
  • Общие операции с графическими объектами
  • Линии и кривые
  • Рисование отрезков
  • Дуги
  • Кривые Безье
  • Перья
  • Стандартные перья
  • Простые перья
  • Расширенные перья
  • Кисти
  • Стандартные кисти
  • Пользовательские кисти
  • Замкнутые фигуры
  • Прямоугольники
  • Эллипсы, сегменты, секторы и закругленные прямоугольники
  • Многоугольники
  • Регионы и отсечение
  • Создание регионов
  • Операции с объектами регионов
  • Прорисовка регионов
  • Отсечение
  • Отображение текста
  • Наборы символов и кодировки
  • Unicode
  • Шрифты
  • Вывод текста
  • Полосы прокрутки и вывод текста
  • Примеры программ
  • Просмотрщик текстовых файлов
  • Вывод временной диаграммы
    напряжения переменного электрического тока

Глава 3. GDI. Палитры, растры, метафайлы

  • Палитры
  • Основные принципы управления палитрами
  • Системная палитра
  • Логическая палитра
  • Растры
  • Аппаратно-независимые растры
  • Аппаратно-зависимые растры
  • DIB-секции
  • Тернарные растровые операции
  • Метафайлы
  • Создание метафайла
  • Воспроизведение метафайла

Глава 4. Средства ввода

  • Клавиатура
  • Фокус ввода
  • Клавиши и символы
  • Аппаратные сообщения
  • Символьные сообщения
  • Работа с кареткой
  • Примитивный текстовый редактор
  • Мышь
  • Терминология, связанная с мышью
  • Сообщения мыши
  • Обработка двойного щелчка
  • Обработка сообщений от колеса мыши
  • Рисуем мышью
  • Эластичные прямоугольники
  • Улучшенное приложение для просмотра текстовых файлов

Глава 5. Ресурсы Windows-приложения

  • Редакторы ресурсов
  • Пиктограммы
  • Создание пиктограммы с помощью графического редактора
  • Импорт существующей пиктограммы
  • Просмотр и редактирование ресурсов приложения
  • Использование ресурса в приложении
  • Курсоры
  • Растровые образы
  • Ресурсы, определяемые программистом
  • Доступ к данным в ресурсе
  • Воспроизведение звуковых файлов
  • Таблицы строк

Глава 6. Меню и быстрые клавиши

  • Организация и виды меню
  • Типы пунктов меню
  • Системное меню
  • Клавиатурный интерфейс меню
  • Статус пунктов меню
  • Отметка пунктов меню
  • Пункт меню, применяемый по умолчанию
  • Определение меню в виде ресурса
  • Шаблон меню
  • Вызов редактора меню
  • Атрибуты пункта меню
  • Уровни меню
  • Процедура определения пункта для меню i-го уровня
  • Процедура определения меню нулевого уровня
  • Добавление меню к окну приложения
  • Внесение изменений в меню
  • Функция CheckMenuItem
  • Функция CheckMenuRadioItem
  • Функция EnableMenuItem
  • Функция ModifyMenu
  • Функции для получения дескриптора меню
  • Сообщения меню
  • Приложение MenuDemo1
  • Работа с контекстным меню
  • Определение шаблона контекстного меню
  • Загрузка меню
  • Вызов меню
  • Приложение MenuDemo2
  • Быстрые клавиши
  • Модификация определения ресурса меню
  • Таблица быстрых клавиш
  • Загрузка таблицы быстрых клавиш
  • Модификация цикла обработки сообщений
  • Приложение MenuDemo3

Глава 7. Диалоговые окна

  • Типы диалоговых окон
  • Элементы управления в диалоговом окне
  • Создание и обработка диалогового окна
  • Шаблон диалогового окна309
  • Шаблонная система единиц
  • Модальный диалог
  • Вызов и использование редактора диалоговых окон
  • Добавление элемента управления Рисунок
  • Добавление элементов управления Надпись
  • Выравнивание элементов управления на форме диалога
  • Определение диалоговой процедуры и вызов диалога
  • Изменение атрибутов элемента управления
  • Использование других элементов управления
  • Кнопки
  • Кнопка Owner draw
  • Флажки
  • Переключатели
  • Групповая рамка
  • Пример использования групповой рамки, флажков и переключателей
  • Клавиатурный интерфейс и порядок обхода элементов управления
  • Окно редактирования
  • Список
  • Комбинированный список
  • Немодальный диалог
  • Различия между модальными и немодальными окнами диалога
  • Пример использования немодального окна диалога
  • Окно сообщений
  • Диалоговые окна общего пользования

Глава 8. Элементы управления общего пользования

  • Основы применения
  • Инициализация библиотеки
  • Создание элементов управления общего пользования
  • Стили элементов управления общего пользования
  • Обмен сообщениями
  • Элементы управления главного окна
  • Панель инструментов
  • Окно подсказки
  • Замена класса KWnd на класс KWndEx
  • Строка состояния
  • Другие элементы управления
  • Индикатор процесса
  • Регулятор
  • Счетчик и поле с прокруткой
  • Создание счетчика

Глава 9. Многозадачность

  • Объекты ядра
  • Процессы и потоки
  • Планирование потоков
  • Классы приоритетов процесса и приоритеты потоков
  • Управление процессами
  • Использование функции CreateProcess
  • Завершение процесса
  • Запуск обособленных дочерних процессов
  • Управление потоками
  • Функция CreateThread
  • Функция Sleep
  • Пример многопоточного приложения
  • Взаимодействие потоков через глобальную переменную
  • Синхронизация
  • Атомарный доступ и семейство Interlocked-функций
  • Критические секции
  • Wait-функции
  • События
  • Семафоры
  • Мьютексы
  • Обмен данными между процессами
  • Виртуальная память. Адресное пространство процесса
  • Файлы данных, проецируемые в память
  • Использование проекции файла для реализации разделяемой памяти
  • Модель «клиент-сервер»
  • Обмен данными с помощью сообщения WM_COPYDATA
  • Приложение ServerApp
  • Приложение ClientApp
  • Когда многопоточность реально полезна?

Глава 10. Таймеры и время

  • Время Windows
  • Системное время
  • Измерение малых временных интервалов
  • Использование счетчика монитора производительности
  • Использование команды RDTSC
  • Программирование задержек в исполнении кода
  • Использование функции Sleep
  • Использование метода uDelay класса KTimer
  • Класс QTimer
  • Стандартный таймер
  • Первый способ использования стандартных таймеров
  • Второй способ использования стандартных таймеров
  • Мультимедийный таймер
  • Функции timeSetEvent и timeKillEvent
  • Тестирование мультимедийного таймера

Глава 11. Специальные приложения

  • Анимация
  • Приложение со стандартным таймером
  • Двойная буферизация
  • Рисование в реальном времени
  • Требования к приемнику информации от метеорадиолокатора
  • Разработка модели программного имитатора

Приложение 1. Интегрированная среда Visual C++ 6.0

  • Запуск IDE. Типы приложений
  • Создание нового проекта
  • Добавление к проекту файлов с исходным кодом
  • Многофайловые проекты
  • Компиляция, компоновка и выполнение проекта
  • Конфигурация проекта
  • Как закончить работу над проектом
  • Как открыть проект,
    над которым вы ранее работали
  • Встроенная справочная система
  • Работа с отладчиком
  • Некоторые полезные инструменты

Приложение 2. Интегрированная среда Visual Studio.NET

  • Создание нового проекта
  • Добавление к проекту нового файла
  • Компиляция, сборка и выполнение
  • Работа с редакторами ресурсов

Приложение 3. Работа с утилитой Spy++

Список литературы

Алфавитный указатель

Ключевые слова

См. также:
Jeff Cogswell, Jonathan Turkanis, Christopher Diggins, Ryan Stephens
[Книга]