 
        
        - •Содержание
- •Глава 1 README.TXT
- •Вызов, брошенный программистам
- •Основные правила
- •Краткая история Windows
- •Краткая история этой книги
- •Начнем
- •Глава 2 Hello, Windows 95
- •Отличительная особенность Windows
- •Графический интерфейс пользователя
- •Концепции и обоснование GUI
- •Содержимое интерфейса пользователя
- •Преимущество многозадачности
- •Управление памятью
- •Независимость графического интерфейса от оборудования
- •Соглашения операционной системы Windows
- •Вызовы функций
- •Объектно-ориентированное программирование
- •Архитектура, управляемая событиями
- •Оконная процедура
- •Ваша первая программа для Windows
- •Что в этой программе неправильно?
- •Файлы HELLOWIN
- •Make-файл
- •Вызовы функций Windows
- •Идентификаторы, написанные прописными буквами
- •Новые типы данных
- •Описатели
- •Венгерская нотация
- •Точка входа программы
- •Регистрация класса окна
- •Создание окна
- •Отображение окна
- •Цикл обработки сообщений
- •Оконная процедура
- •Обработка сообщений
- •Воспроизведение звукового файла
- •Сообщение WM_PAINT
- •Сообщение WM_DESTROY
- •Сложности программирования для Windows
- •Не вызывай меня, я вызову тебя
- •Синхронные и асинхронные сообщения
- •Думайте о ближнем
- •Кривая обучения
- •Глава 3 Рисование текста
- •Рисование и обновление
- •Сообщение WM_PAINT
- •Действительные и недействительные прямоугольники
- •Введение в графический интерфейс устройства (GDI)
- •Контекст устройства
- •Структура информации о рисовании
- •Получение описателя контекста устройства. Второй метод
- •Функция TextOut. Подробности
- •Системный шрифт
- •Размер символа
- •Метрические параметры текста. Подробности
- •Форматирование текста
- •Соединим все вместе
- •Не хватает места!
- •Размер рабочей области
- •Полосы прокрутки
- •Диапазон и положение полос прокрутки
- •Сообщения полос прокрутки
- •Прокрутка в программе SYSMETS
- •Структурирование вашей программы для рисования
- •Создание улучшенной прокрутки
- •Мне не нравится пользоваться мышью
- •Глава 4 Главное о графике
- •Концепция GDI
- •Структура GDI
- •Типы функций
- •Примитивы GDI
- •Другие аспекты
- •Контекст устройства
- •Получение описателя контекста устройства
- •Программа DEVCAPS1
- •Размер устройства
- •О цветах
- •Атрибуты контекста устройства
- •Сохранение контекста устройства
- •Рисование отрезков
- •Ограничивающий прямоугольник
- •Сплайны Безье
- •Использование стандартных перьев
- •Создание, выбор и удаление перьев
- •Закрашивание пустот
- •Режимы рисования
- •Рисование закрашенных областей
- •Функция Polygon и режим закрашивания многоугольника
- •Закрашивание внутренней области
- •Режим отображения
- •Координаты устройства (физические координаты) и логические координаты
- •Системы координат устройства
- •Область вывода и окно
- •Работа в режиме MM_TEXT
- •Метрические режимы отображения
- •Ваши собственные режимы отображения
- •Программа WHATSIZE
- •Прямоугольники, регионы и отсечение
- •Работа с прямоугольниками
- •Случайные прямоугольники
- •Создание и рисование регионов
- •Отсечения: прямоугольники и регионы
- •Программа CLOVER
- •Пути
- •Создание и воспроизведение путей
- •Расширенные перья
- •Bits and Blts
- •Цвета и битовые образы
- •Файл DIB
- •Упакованный формат хранения DIB
- •Отображение DIB
- •Преобразование DIB в объекты "битовые образы"
- •Битовый образ — объект GDI
- •Создание битовых образов в программе
- •Формат монохромного битового образа
- •Формат цветного битового образа
- •Контекст памяти
- •Мощная функция BitBlt
- •Перенос битов с помощью функции BitBlt
- •Функция DrawBitmap
- •Использование других ROP кодов
- •Дополнительные сведения о контексте памяти
- •Растяжение битовых образов с помощью функции StretchBlt
- •Кисти и битовые образы
- •Метафайлы
- •Простое использование метафайлов памяти
- •Сохранение метафайлов на диске
- •Расширенные метафайлы
- •Делаем это лучше
- •Базовая процедура
- •Заглянем внутрь
- •Вывод точных изображений
- •Текст и шрифты
- •Вывод простого текста
- •Атрибуты контекста устройства и текст
- •Использование стандартных шрифтов
- •Типы шрифтов
- •Шрифты TrueType
- •Система EZFONT
- •Внутренняя работа
- •Форматирование простого текста
- •Работа с абзацами
- •Глава 5 Клавиатура
- •Клавиатура. Основные понятия
- •Игнорирование клавиатуры
- •Фокус ввода
- •Аппаратные и символьные сообщения
- •Аппаратные сообщения
- •Системные и несистемные аппаратные сообщения клавиатуры
- •Переменная lParam
- •Виртуальные коды клавиш
- •Использование сообщений клавиатуры
- •Модернизация SYSMETS: добавление интерфейса клавиатуры
- •Логика обработки сообщений WM_KEYDOWN
- •Посылка асинхронных сообщений
- •Символьные сообщения
- •Сообщения WM_CHAR
- •Сообщения немых символов
- •Каретка (не курсор)
- •Функции работы с кареткой
- •Программа TYPER
- •Наборы символов Windows
- •Набор символов OEM
- •Набор символов ANSI
- •Наборы символов OEM, ANSI и шрифты
- •Международные интересы
- •Работа с набором символов
- •Связь с MS-DOS
- •Использование цифровой клавиатуры
- •Решение проблемы с использованием системы UNICODE в Windows NT
- •Глава 6 Мышь
- •Базовые знания о мыши
- •Несколько кратких определений
- •Сообщения мыши, связанные с рабочей областью окна
- •Простой пример обработки сообщений мыши
- •Обработка клавиш <Shift>
- •Сообщения мыши нерабочей области
- •Сообщение теста попадания
- •Сообщения порождают сообщения
- •Тестирование попадания в ваших программах
- •Гипотетический пример
- •Пример программы
- •Эмуляция мыши с помощью клавиатуры
- •Добавление интерфейса клавиатуры к программе CHECKER
- •Использование дочерних окон для тестирования попадания
- •Дочерние окна в программе CHECKER
- •Захват мыши
- •Рисование прямоугольника
- •Решение проблемы — захват
- •Программа BLOKOUT2
- •Глава 7 Таймер
- •Основы использования таймера
- •Система и таймер
- •Таймерные сообщения не являются асинхронными
- •Использование таймера: три способа
- •Первый способ
- •Второй способ
- •Третий способ
- •Использование таймера для часов
- •Позиционирование и изменение размеров всплывающего окна
- •Получение даты и времени
- •Обеспечение международной поддержки
- •Создание аналоговых часов
- •Стандартное время Windows
- •Анимация
- •Класс кнопок
- •Создание дочерних окон
- •Сообщения дочерних окон родительскому окну
- •Сообщения родительского окна дочерним окнам
- •Нажимаемые кнопки
- •Флажки
- •Переключатели
- •Окна группы
- •Изменение текста кнопки
- •Видимые и доступные кнопки
- •Кнопки и фокус ввода
- •Дочерние окна управления и цвета
- •Системные цвета
- •Цвета кнопок
- •Сообщение WM_CTLCOLORBTN
- •Кнопки, определяемые пользователем
- •Класс статических дочерних окон
- •Класс полос прокрутки
- •Программа COLORS1
- •Интерфейс клавиатуры, поддерживаемый автоматически
- •Введение новой оконной процедуры
- •Закрашивание фона
- •Окрашивание полос прокрутки и статического текста
- •Класс редактирования
- •Стили класса редактирования
- •Коды уведомления управляющих окон редактирования
- •Использование управляющих окон редактирования
- •Сообщения управляющему окну редактирования
- •Класс окна списка
- •Стили окна списка
- •Добавление строк в окно списка
- •Выбор и извлечение элементов списка
- •Получение сообщений от окон списка
- •Простое приложение, использующее окно списка
- •Список файлов
- •Утилита Head для Windows
- •Компиляция ресурсов
- •Значки и курсоры
- •Редактор изображений
- •Получение описателя значков
- •Использование значков в вашей программе
- •Использование альтернативных курсоров
- •Битовые образы: картинки в пикселях
- •Использование битовых образов и кистей
- •Символьные строки
- •Использование ресурсов-символьных строк
- •Меню
- •Структура меню
- •Шаблон меню
- •Ссылки на меню в вашей программе
- •Меню и сообщения
- •Образец программы
- •Этикет при организации меню
- •Сложный способ определения меню
- •Третий подход к определению меню
- •Независимые всплывающие меню
- •Использование системного меню
- •Изменение меню
- •Другие команды меню
- •Использование в меню битовых образов
- •Два способа создания битовых образов для меню
- •Контекст памяти
- •Создание битового образа, содержащего текст
- •Масштабирование битовых образов
- •Соберем все вместе
- •Добавление интерфейса клавиатуры
- •Быстрые клавиши
- •Зачем нужны быстрые клавиши?
- •Некоторые правила назначения быстрых клавиш
- •Таблица быстрых клавиш
- •Преобразование нажатий клавиш клавиатуры
- •Получение сообщений быстрых клавиш
- •Программа POPPAD, имеющая меню и быстрые клавиши
- •Разрешение пунктов меню
- •Обработка опций меню
- •Глава 11 Окна диалога
- •Модальные окна диалога
- •Создание окна диалога About
- •Шаблон окна диалога
- •Диалоговая процедура
- •Вызов окна диалога
- •Дополнительная информация о стиле окна диалога
- •Дополнительная информация об определении дочерних окон элементов управления
- •Более сложное окно диалога
- •Работа с дочерними элементами управления окна диалога
- •Кнопки OK и Cancel
- •Позиции табуляции и группы
- •Рисование в окне диалога
- •Использование с окном диалога других функций
- •Определение собственных окон управления
- •Окна сообщений
- •Информация во всплывающих окнах
- •Немодальные окна диалога
- •Различия между модальными и немодальными окнами диалога
- •Новая программа COLORS
- •Программа HEXCALC: обычное окно или окно диалога?
- •Творческое использование идентификаторов дочерних окон элементов управления
- •Диалоговые окна общего пользования
- •Модернизированная программа POPPAD
- •Изменение шрифта
- •Поиск и замена
- •Программа для Windows, содержащая всего один вызов функции
- •Основы элементов управления общего пользования
- •Инициализация библиотеки
- •Создание элементов управления общего пользования
- •Стили элементов управления общего пользования
- •Уведомляющие сообщения от элементов управления общего пользования
- •Элементы управления главного окна
- •Панели инструментов
- •Создание панели инструментов
- •Строка состояния
- •Программа GADGETS
- •Наборы страниц свойств
- •Создание набора страниц свойств
- •Процедуры диалогового окна страницы свойств
- •Программа PROPERTY
 
Ч. Петзолд
Программирование для Windows® 95
в двух томах
Том I
«BHV — Санкт-Петербург»
Дюссельдорф Киев Москва Санкт-Петербург
| Содержание | 
 | |
| ЧАСТЬ I | ВВЕДЕНИЕ ..................................................................................................................................................... | 9 | 
| ГЛАВА 1 | README.TXT ................................................................................................................................................ | 11 | 
| Вызов, брошенный программистам ........................................................................................................................... | 11 | |
| Основные правила......................................................................................................................................................... | 12 | |
| Краткая история Windows.......................................................................................................................................... | 13 | |
| Краткая история этой книги ..................................................................................................................................... | 14 | |
| Начнем | ........................................................................................................................................................................... | 15 | 
| ГЛАВА 2 | H ELLO , W INDOWS 95 ....................................................................................................................................... | 17 | 
| Отличительная особенность Windows ...................................................................................................................... | 17 | |
| Графический ...................................................................................................................интерфейс пользователя | 17 | |
| Концепции ...............................................................................................................................и обоснование GUI | 18 | |
| Содержимое ..................................................................................................................интерфейса пользователя | 18 | |
| Преимущество ............................................................................................................................многозадачности | 18 | |
| Управление ................................................................................................................................................памятью | 19 | |
| Независимость ................................................................................графического интерфейса от оборудования | 19 | |
| Соглашения ......................................................................................................операционной системы Windows | 19 | |
| Вызовы ......................................................................................................................................................функций | 20 | |
| Объектно ...................................................................................................-ориентированное программирование | 20 | |
| Архитектура ..................................................................................................................., управляемая событиями | 20 | |
| Оконная ...................................................................................................................................................процедура | 21 | |
| Ваша первая .........................................................................................................................программа для Windows | 21 | |
| Что в ......................................................................................................................этой программе неправильно? | 22 | |
| Файлы ..................................................................................................................................................HELLOWIN | 22 | |
| Make .................................................................................................................................................................-файл | 25 | |
| Файл .....................................................................................................исходного текста программы на языке С | 25 | |
| Вызовы ......................................................................................................................................функций Windows | 26 | |
| Идентификаторы .........................................................................................., написанные прописными буквами | 26 | |
| Новые .................................................................................................................................................типы данных | 27 | |
| Описатели.................................................................................................................................................................. | 27 | |
| Венгерская ..................................................................................................................................................нотация | 28 | |
| Точка ...........................................................................................................................................входа программы | 28 | |
| Регистрация ..........................................................................................................................................класса окна | 29 | |
| Создание ...........................................................................................................................................................окна | 31 | |
| Отображение ....................................................................................................................................................окна | 32 | |
| Цикл ....................................................................................................................................обработки сообщений | 33 | |
| Оконная ...................................................................................................................................................процедура | 34 | |
| Обработка ..............................................................................................................................................сообщений | 34 | |
| Воспроизведение .........................................................................................................................звукового файла | 35 | |
| Сообщение ..........................................................................................................................................WM_PAINT | 35 | |
| Сообщение ....................................................................................................................................WM_DESTROY | 36 | |
| Сложности ............................................................................................................программирования для Windows | 37 | |
| Не вызывай .............................................................................................................................меня, я вызову тебя | 37 | |
| Синхронные ................................................................................................................и асинхронные сообщения | 38 | |
| Думайте ..................................................................................................................................................о ближнем | 39 | |
| Кривая .......................................................................................................................................................обучения | 39 | |
| ГЛАВА 3 ........................................................................................................................................ | Р ИСОВАНИЕ ТЕКСТА | 41 | 
| Рисование ...............................................................................................................................................и обновление | 41 | |
| Сообщение ..........................................................................................................................................WM_PAINT | 42 | |
| Действительные ........................................................................................и недействительные прямоугольники | 42 | |
| Введение ...........................................................................................в графический интерфейс устройства (GDI) | 43 | |
| Контекст ................................................................................................................................................устройства | 43 | |
| Получение ................................................................................описателя контекста устройства. Первый метод | 43 | |
| Структура ......................................................................................................................информации о рисовании | 44 | |
| Получение ................................................................................описателя контекста устройства. Второй метод | 45 | |
| Функция ..............................................................................................................................TextOut. Подробности | 46 | |
| Системный ....................................................................................................................................................шрифт | 47 | |
| Размер .........................................................................................................................................................символа | 47 | |
| Метрические ......................................................................................................параметры текста. Подробности | 48 | |
| Форматирование ...........................................................................................................................................текста | 49 | |
 
4
| Соединим все вместе................................................................................................................................................ | 50 | 
| Оконная процедура программы SYSMETS1.С...................................................................................................... | 53 | 
| Не хватает места!...................................................................................................................................................... | 54 | 
| Размер рабочей области........................................................................................................................................... | 55 | 
| Полосы прокрутки ....................................................................................................................................................... | 55 | 
| Диапазон и положение полос прокрутки ............................................................................................................... | 56 | 
| Сообщения полос прокрутки................................................................................................................................... | 57 | 
| Прокрутка в программе SYSMETS......................................................................................................................... | 58 | 
| Структурирование вашей программы для рисования........................................................................................... | 62 | 
| Создание улучшенной прокрутки........................................................................................................................... | 62 | 
| Мне не нравится пользоваться мышью .................................................................................................................. | 67 | 
| ГЛАВА 4 ГЛАВНОЕ О ГРАФИКЕ ....................................................................................................................................... | 69 | 
| Концепция GDI.............................................................................................................................................................. | 69 | 
| Структура GDI ............................................................................................................................................................ | 70 | 
| Типы функций .......................................................................................................................................................... | 70 | 
| Примитивы GDI........................................................................................................................................................ | 71 | 
| Другие аспекты......................................................................................................................................................... | 72 | 
| Контекст устройства ................................................................................................................................................ | 72 | 
| Получение описателя контекста устройства.......................................................................................................... | 72 | 
| Получение информации из контекста устройства................................................................................................. | 74 | 
| Программа DEVCAPS1............................................................................................................................................ | 74 | 
| Размер устройства .................................................................................................................................................... | 77 | 
| О цветах..................................................................................................................................................................... | 77 | 
| Атрибуты контекста устройства ............................................................................................................................. | 78 | 
| Сохранение контекста устройства .......................................................................................................................... | 79 | 
| Рисование отрезков ..................................................................................................................................................... | 80 | 
| Ограничивающий прямоугольник .......................................................................................................................... | 84 | 
| Сплайны Безье .......................................................................................................................................................... | 89 | 
| Использование стандартных перьев ....................................................................................................................... | 93 | 
| Создание, выбор и удаление перьев ....................................................................................................................... | 94 | 
| Закрашивание пустот ............................................................................................................................................... | 96 | 
| Режимы рисования ................................................................................................................................................... | 96 | 
| Рисование закрашенных областей.............................................................................................................................. | 97 | 
| Функция Polygon и режим закрашивания многоугольника.................................................................................. | 98 | 
| Закрашивание внутренней области......................................................................................................................... | 99 | 
| Режим отображения ................................................................................................................................................ | 100 | 
| Координаты устройства (физические координаты) и логические координаты................................................ | 101 | 
| Системы координат устройства ............................................................................................................................ | 102 | 
| Область вывода и окно........................................................................................................................................... | 102 | 
| Работа в режиме MM_TEXT ................................................................................................................................. | 103 | 
| Метрические режимы отображения ..................................................................................................................... | 105 | 
| Ваши собственные режимы отображения............................................................................................................ | 106 | 
| Программа WHATSIZE ......................................................................................................................................... | 109 | 
| Прямоугольники, регионы и отсечение .................................................................................................................... | 112 | 
| Работа с прямоугольниками .................................................................................................................................. | 112 | 
| Случайные прямоугольники.................................................................................................................................. | 113 | 
| Создание и рисование регионов............................................................................................................................ | 117 | 
| Отсечения: прямоугольники и регионы ............................................................................................................... | 118 | 
| Программа CLOVER.............................................................................................................................................. | 118 | 
| Пути ............................................................................................................................................................................ | 121 | 
| Создание и воспроизведение путей ...................................................................................................................... | 121 | 
| Расширенные перья................................................................................................................................................ | 122 | 
| Bits and Blts ................................................................................................................................................................. | 125 | 
| Цвета и битовые образы......................................................................................................................................... | 126 | 
| Битовые образы, не зависящие от устройства (DIB)........................................................................................... | 126 | 
| Файл DIB ................................................................................................................................................................. | 127 | 
| Упакованный формат хранения DIB .................................................................................................................... | 128 | 
| Отображение DIB ................................................................................................................................................... | 128 | 
| Преобразование DIB в объекты "битовые образы"............................................................................................... | 128 | 
| Битовый образ — объект GDI.................................................................................................................................. | 129 | 
| Создание битовых образов в программе .............................................................................................................. | 129 | 
| Формат монохромного битового образа .............................................................................................................. | 130 | 
| Формат цветного битового образа........................................................................................................................ | 131 | 
| Контекст памяти..................................................................................................................................................... | 131 | 
 
| 
 | 
 | 5 | 
| Мощная функция BitBlt.......................................................................................................................................... | 132 | |
| Перенос битов с помощью функции BitBlt .......................................................................................................... | 135 | |
| Функция DrawBitmap ............................................................................................................................................. | 136 | |
| Использование других ROP кодов........................................................................................................................ | 136 | |
| Дополнительные сведения о контексте памяти................................................................................................... | 138 | |
| Преобразования цветов.......................................................................................................................................... | 141 | |
| Преобразования режимов отображения ............................................................................................................... | 141 | |
| Растяжение битовых образов с помощью функции StretchBlt ........................................................................... | 141 | |
| Кисти и битовые образы ........................................................................................................................................ | 142 | |
| Метафайлы................................................................................................................................................................. | 143 | |
| Простое использование метафайлов памяти........................................................................................................ | 144 | |
| Сохранение метафайлов на диске ......................................................................................................................... | 147 | |
| Расширенные метафайлы ......................................................................................................................................... | 147 | |
| Делаем это лучше ................................................................................................................................................... | 147 | |
| Базовая процедура .................................................................................................................................................. | 148 | |
| Заглянем внутрь...................................................................................................................................................... | 151 | |
| Вывод точных изображений.................................................................................................................................. | 153 | |
| Текст и шрифты ........................................................................................................................................................ | 154 | |
| Вывод простого текста........................................................................................................................................... | 154 | |
| Атрибуты контекста устройства и текст .............................................................................................................. | 156 | |
| Использование стандартных шрифтов ................................................................................................................. | 157 | |
| Типы шрифтов ........................................................................................................................................................ | 157 | |
| Шрифты TrueType .................................................................................................................................................. | 158 | |
| Система EZFONT ................................................................................................................................................... | 158 | |
| Внутренняя работа ................................................................................................................................................. | 161 | |
| Форматирование простого текста ......................................................................................................................... | 162 | |
| Работа с абзацами................................................................................................................................................... | 163 | |
| ЧАСТЬ II | СРЕДСТВА ВВОДА................................................................................................................................... | 169 | 
| ГЛАВА 5 | КЛАВИАТУРА ................................................................................................................................................. | 171 | 
| Клавиатура. Основные понятия............................................................................................................................... | 171 | |
| Игнорирование клавиатуры................................................................................................................................... | 171 | |
| Фокус ввода............................................................................................................................................................. | 172 | |
| Аппаратные и символьные сообщения................................................................................................................. | 172 | |
| Аппаратные сообщения............................................................................................................................................. | 173 | |
| Системные и несистемные аппаратные сообщения клавиатуры ....................................................................... | 173 | |
| Переменная lParam ................................................................................................................................................ | 173 | |
| Виртуальные коды клавиш.................................................................................................................................... | 175 | |
| Положения клавиш сдвига и клавиш-переключателей....................................................................................... | 177 | |
| Использование сообщений клавиатуры ............................................................................................................... | 178 | |
| Модернизация SYSMETS: добавление интерфейса клавиатуры............................................................................ | 178 | |
| Логика обработки сообщений WM_KEYDOWN................................................................................................. | 178 | |
| Посылка асинхронных сообщений ....................................................................................................................... | 179 | |
| Символьные сообщения.............................................................................................................................................. | 184 | |
| Сообщения WM_CHAR ......................................................................................................................................... | 185 | |
| Сообщения немых символов ................................................................................................................................. | 186 | |
| Взгляд на сообщения от клавиатуры ....................................................................................................................... | 186 | |
| Каретка (не курсор) ................................................................................................................................................... | 190 | |
| Функции работы с кареткой .................................................................................................................................. | 190 | |
| Программа TYPER ................................................................................................................................................. | 191 | |
| Наборы символов Windows ........................................................................................................................................ | 196 | |
| Набор символов OEM ............................................................................................................................................ | 197 | |
| Набор символов ANSI............................................................................................................................................ | 198 | |
| Наборы символов OEM, ANSI и шрифты ............................................................................................................ | 198 | |
| Международные интересы ....................................................................................................................................... | 199 | |
| Работа с набором символов ................................................................................................................................... | 199 | |
| Связь с MS-DOS ..................................................................................................................................................... | 199 | |
| Использование цифровой клавиатуры.................................................................................................................. | 200 | |
| Решение проблемы с использованием системы UNICODE в Windows NT ...................................................... | 201 | |
| ГЛАВА 6 | МЫШЬ............................................................................................................................................................ | 203 | 
| Базовые знания о мыши ............................................................................................................................................. | 203 | |
| Несколько кратких определений........................................................................................................................... | 203 | |
| Сообщения мыши, связанные с рабочей областью окна ........................................................................................ | 204 | |
| Простой пример обработки сообщений мыши .................................................................................................... | 205 | |
 
6
| Обработка клавиш <Shift>..................................................................................................................................... | 208 | 
| Двойные щелчки клавиш мыши............................................................................................................................ | 209 | 
| Сообщения мыши нерабочей области...................................................................................................................... | 209 | 
| Сообщение теста попадания.................................................................................................................................. | 210 | 
| Сообщения порождают сообщения ...................................................................................................................... | 211 | 
| Тестирование попадания в ваших программах........................................................................................................ | 211 | 
| Гипотетический пример......................................................................................................................................... | 211 | 
| Пример программы ................................................................................................................................................ | 212 | 
| Эмуляция мыши с помощью клавиатуры ............................................................................................................ | 215 | 
| Добавление интерфейса клавиатуры к программе CHECKER .......................................................................... | 216 | 
| Использование дочерних окон для тестирования попадания............................................................................. | 219 | 
| Дочерние окна в программе CHECKER............................................................................................................... | 220 | 
| Захват мыши .............................................................................................................................................................. | 223 | 
| Рисование прямоугольника ................................................................................................................................... | 224 | 
| Решение проблемы — захват ................................................................................................................................ | 227 | 
| Программа BLOKOUT2......................................................................................................................................... | 227 | 
| ГЛАВА 7 ТАЙМЕР......................................................................................................................................................... | 231 | 
| Основы использования таймера ............................................................................................................................... | 231 | 
| Система и таймер ................................................................................................................................................... | 232 | 
| Таймерные сообщения не являются асинхронными ........................................................................................... | 232 | 
| Использование таймера: три способа..................................................................................................................... | 233 | 
| Первый способ........................................................................................................................................................ | 233 | 
| Второй способ......................................................................................................................................................... | 237 | 
| Третий способ......................................................................................................................................................... | 239 | 
| Использование таймера для часов............................................................................................................................ | 240 | 
| Позиционирование и изменение размеров всплывающего окна........................................................................ | 243 | 
| Получение даты и времени.................................................................................................................................... | 243 | 
| Обеспечение международной поддержки............................................................................................................ | 243 | 
| Создание аналоговых часов................................................................................................................................... | 244 | 
| Стандартное время Windows ................................................................................................................................... | 248 | 
| Анимация..................................................................................................................................................................... | 249 | 
| ГЛАВА 8 ДОЧЕРНИЕ ОКНА УПРАВЛЕНИЯ...................................................................................................................... | 253 | 
| Класс кнопок ............................................................................................................................................................... | 254 | 
| Создание дочерних окон........................................................................................................................................ | 257 | 
| Сообщения дочерних окон родительскому окну................................................................................................. | 258 | 
| Сообщения родительского окна дочерним окнам............................................................................................... | 258 | 
| Нажимаемые кнопки .............................................................................................................................................. | 259 | 
| Флажки .................................................................................................................................................................... | 259 | 
| Переключатели ....................................................................................................................................................... | 260 | 
| Окна группы............................................................................................................................................................ | 260 | 
| Изменение текста кнопки ...................................................................................................................................... | 260 | 
| Видимые и доступные кнопки .............................................................................................................................. | 261 | 
| Кнопки и фокус ввода............................................................................................................................................ | 261 | 
| Дочерние окна управления и цвета ........................................................................................................................... | 262 | 
| Системные цвета .................................................................................................................................................... | 262 | 
| Цвета кнопок........................................................................................................................................................... | 263 | 
| Сообщение WM_CTLCOLORBTN ....................................................................................................................... | 263 | 
| Кнопки, определяемые пользователем................................................................................................................. | 264 | 
| Класс статических дочерних окон ........................................................................................................................... | 269 | 
| Класс полос прокрутки .............................................................................................................................................. | 270 | 
| Программа COLORS1 ............................................................................................................................................ | 271 | 
| Интерфейс клавиатуры, поддерживаемый автоматически................................................................................. | 276 | 
| Введение новой оконной процедуры.................................................................................................................... | 276 | 
| Закрашивание фона ................................................................................................................................................ | 277 | 
| Окрашивание полос прокрутки и статического текста....................................................................................... | 278 | 
| Класс редактирования............................................................................................................................................... | 278 | 
| Стили класса редактирования ............................................................................................................................... | 280 | 
| Коды уведомления управляющих окон редактирования.................................................................................... | 281 | 
| Использование управляющих окон редактирования .......................................................................................... | 281 | 
| Сообщения управляющему окну редактирования .............................................................................................. | 281 | 
| Класс окна списка....................................................................................................................................................... | 282 | 
| Стили окна списка.................................................................................................................................................. | 283 | 
| Добавление строк в окно списка........................................................................................................................... | 283 | 
| Выбор и извлечение элементов списка ................................................................................................................ | 284 | 
 
| 
 | 7 | 
| Получение сообщений от окон списка ................................................................................................................. | 285 | 
| Простое приложение, использующее окно списка ................................................................................................. | 285 | 
| Список файлов........................................................................................................................................................ | 288 | 
| Утилита Head для Windows ................................................................................................................................... | 289 | 
| ЧАСТЬ III ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ........................................................................................................... | 293 | 
| ГЛАВА 9 ЗНАЧКИ, КУРСОРЫ, БИТОВЫЕ ОБРАЗЫ И СТРОКИ .......................................................................................... | 295 | 
| Компиляция ресурсов.................................................................................................................................................. | 295 | 
| Значки и курсоры ........................................................................................................................................................ | 296 | 
| Редактор изображений ........................................................................................................................................... | 298 | 
| Получение описателя значков............................................................................................................................... | 300 | 
| Использование значков в вашей программе ........................................................................................................ | 301 | 
| Использование альтернативных курсоров ........................................................................................................... | 301 | 
| Битовые образы: картинки в пикселях ................................................................................................................. | 302 | 
| Использование битовых образов и кистей ........................................................................................................... | 302 | 
| Символьные строки.................................................................................................................................................... | 305 | 
| Использование ресурсов-символьных строк........................................................................................................ | 305 | 
| Использование ресурсов-строк в функции MessageBox ..................................................................................... | 305 | 
| Ресурсы, определяемые пользователем ................................................................................................................... | 306 | 
| ГЛАВА 10 МЕНЮ И БЫСТРЫЕ КЛАВИШИ ....................................................................................................................... | 313 | 
| Меню............................................................................................................................................................................ | 313 | 
| Структура меню...................................................................................................................................................... | 314 | 
| Шаблон меню.......................................................................................................................................................... | 314 | 
| Ссылки на меню в вашей программе.................................................................................................................... | 315 | 
| Меню и сообщения................................................................................................................................................. | 316 | 
| Образец программы................................................................................................................................................ | 318 | 
| Этикет при организации меню .............................................................................................................................. | 322 | 
| Сложный способ определения меню .................................................................................................................... | 322 | 
| Третий подход к определению меню.................................................................................................................... | 324 | 
| Независимые всплывающие меню........................................................................................................................ | 324 | 
| Использование системного меню ......................................................................................................................... | 328 | 
| Изменение меню..................................................................................................................................................... | 330 | 
| Другие команды меню ........................................................................................................................................... | 330 | 
| Нестандартный подход к меню ............................................................................................................................. | 331 | 
| Использование в меню битовых образов.................................................................................................................. | 335 | 
| Два способа создания битовых образов для меню .............................................................................................. | 341 | 
| Контекст памяти ..................................................................................................................................................... | 341 | 
| Создание битового образа, содержащего текст ................................................................................................... | 341 | 
| Масштабирование битовых образов..................................................................................................................... | 342 | 
| Соберем все вместе ................................................................................................................................................ | 343 | 
| Добавление интерфейса клавиатуры .................................................................................................................... | 344 | 
| Быстрые клавиши ...................................................................................................................................................... | 344 | 
| Зачем нужны быстрые клавиши? .......................................................................................................................... | 344 | 
| Некоторые правила назначения быстрых клавиш............................................................................................... | 345 | 
| Таблица быстрых клавиш ...................................................................................................................................... | 345 | 
| Загрузка таблицы быстрых клавиш ...................................................................................................................... | 346 | 
| Преобразование нажатий клавиш клавиатуры .................................................................................................... | 346 | 
| Получение сообщений быстрых клавиш.............................................................................................................. | 347 | 
| Программа POPPAD, имеющая меню и быстрые клавиши................................................................................ | 348 | 
| Разрешение пунктов меню..................................................................................................................................... | 352 | 
| Обработка опций меню.......................................................................................................................................... | 353 | 
| ГЛАВА 11 ОКНА ДИАЛОГА.............................................................................................................................................. | 355 | 
| Модальные окна диалога............................................................................................................................................ | 355 | 
| Создание окна диалога About................................................................................................................................ | 355 | 
| Шаблон окна диалога............................................................................................................................................. | 358 | 
| Диалоговая процедура............................................................................................................................................ | 359 | 
| Вызов окна диалога ................................................................................................................................................ | 360 | 
| Дополнительная информация о стиле окна диалога ........................................................................................... | 361 | 
| Дополнительная информация об определении дочерних окон элементов управления................................... | 362 | 
| Более сложное окно диалога ................................................................................................................................. | 364 | 
| Работа с дочерними элементами управления окна диалога ............................................................................... | 368 | 
| Кнопки OK и Cancel ............................................................................................................................................... | 370 | 
| Позиции табуляции и группы................................................................................................................................ | 371 | 
| Рисование в окне диалога ...................................................................................................................................... | 373 | 
 
8
| Использование с окном диалога других функций............................................................................................... | 373 | 
| Определение собственных окон управления ....................................................................................................... | 373 | 
| Окна сообщений.......................................................................................................................................................... | 378 | 
| Информация во всплывающих окнах ................................................................................................................... | 379 | 
| Немодальные окна диалога........................................................................................................................................ | 379 | 
| Различия между модальными и немодальными окнами диалога....................................................................... | 380 | 
| Новая программа COLORS.................................................................................................................................... | 381 | 
| Программа HEXCALC: обычное окно или окно диалога? ................................................................................. | 385 | 
| Творческое использование идентификаторов дочерних окон элементов управления..................................... | 390 | 
| Диалоговые окна общего пользования ...................................................................................................................... | 391 | 
| Модернизированная программа POPPAD............................................................................................................ | 391 | 
| Изменение шрифта................................................................................................................................................. | 407 | 
| Поиск и замена........................................................................................................................................................ | 408 | 
| Программа для Windows, содержащая всего один вызов функции................................................................... | 408 | 
| ГЛАВА 12 СОВРЕМЕННЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС ...................................................................................... | 411 | 
| Основы элементов управления общего пользования ............................................................................................... | 412 | 
| Инициализация библиотеки .................................................................................................................................. | 413 | 
| Создание элементов управления общего пользования ....................................................................................... | 413 | 
| Стили элементов управления общего пользования............................................................................................. | 414 | 
| Посылка сообщений элементам управления общего пользования.................................................................... | 417 | 
| Уведомляющие сообщения от элементов управления общего пользования .................................................... | 418 | 
| Элементы управления главного окна........................................................................................................................ | 421 | 
| Панели инструментов ............................................................................................................................................ | 421 | 
| Создание панели инструментов ............................................................................................................................ | 422 | 
| Строка состояния.................................................................................................................................................... | 434 | 
| Программа GADGETS ........................................................................................................................................... | 438 | 
| Наборы страниц свойств.......................................................................................................................................... | 465 | 
| Создание набора страниц свойств ........................................................................................................................ | 466 | 
| Процедуры диалогового окна страницы свойств ................................................................................................ | 470 | 
| Программа PROPERTY ......................................................................................................................................... | 475 | 
 
Часть I
Введение
