- •Содержание
- •Глава 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
Введение