95 в двух томах Том I



Pdf просмотр
страница1/41
Дата27.11.2016
Размер4.32 Mb.
Просмотров7986
Скачиваний0
ТипРеферат
  1   2   3   4   5   6   7   8   9   ...   41

Ч. Петзолд
Программирование
для 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
Обработка клавиш ..................................................................................................................................... 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
Введение

1
1





Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9   ...   41


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал