Глава 1. Обзор платформы Pocket PC .................................. 16
Основные элементы интерфейса пользователя ......................... 17
Архитектура Windows CE ............................................................. 18
Внутри подсистемы GWE ............................................................ 22
Обзор интерфейса графических устройств (GDI) ....................... 24
Логическая структура программы для Windows .......................... 28
Обработка сообщений в программе ...................................... 29
Обновление клиентской области окна.................................... 30
Резюме....................................................................................... 31
Глава 2. Типичная программа для Pocket PC .................... 32
Уникальные особенности программ для Windows CE.................. 32
Тип TCHAR – основа переносимого механизма
обработки строк ......................................................................... 35
Анатомия простой программы для Windows ............................... 36
Общая логическая структура программ для Windows ................. 40
Типичная программа для Windows .............................................. 40
Полный текст функции WinMain .............................................. 41
Построчный анализ функции WinMain .................................... 42
Полный текст функции WinProc .............................................. 47
Использование набора инструментов рисования .................. 92
Имеющиеся стили пера и кисти ............................................. 93
Операции рисования.............................................................. 95
Операции отсечения .............................................................. 96
Вывод изображения ............................................................... 98
Принудительная перерисовка окна приложения .................... 99
Использование таймеров ..................................................... 100
Применение инкапсуляции в проекте приложения ................... 102
Реализация простой анимационной программы ...................... 105
Анализ функции DlgProc ....................................................... 106
Анализ эффективности инкапсуляции ...................................... 114
Резюме..................................................................................... 114
Примеры программ в Web ........................................................ 115
Инструкции по сборке и запуску........................................... 115
Глава 5. Реализация программы рисования ................... 117
Рисование объектов с помощью эластичного контура ............. 118
Добавление объявлений и тел обработчиков сообщений .... 122
Объявление статических переменных
для поддержки буксировки .................................................. 123
Реализация рисования в обработчиках сообщений ............. 124
Модификация обработчика WM_PAINT для поддержки
стирания и рисования .......................................................... 126
Ввод и эхоFвывод символов ..................................................... 127
Реализация функций, инкапсулирующих работу с текстом.... 133
Добавление переменных для хранения состояния
и текстовой строки ............................................................... 135
Обработчик сообщения WM_POSITIONCARET ...................... 136
Добавление обработки сообщений о введенных символах ... 137
Реализация обработчика сообщения WM_KEYDOWN ........... 138
Модификация обработчика сообщений
WM_LBUTTONDOWN ............................................................. 140
Реализация обработчика сообщения WM_CHAR .................. 142
Реализация обработчика сообщения WM_POSITIONCARET . 143
Отображение строки в обработчике сообщения WM_PAINT . 144
Критика подхода к проектированию и реализации............... 145
Резюме..................................................................................... 145
Примеры программ в Web ........................................................ 146
Глава 6. Обработка растровых изображений ................. 149
Реализация программы обработки изображений .................... 150
Построчный анализ функции WinProc ..................................... 48
Преобразование программы для исполнения
на платформе Windows CE .......................................................... 53
Модификации функции WinMain............................................. 53
Обсуждение модификаций WinMain ....................................... 54
Аннотированный исходный текст модифицированной
функции WinMain .................................................................... 54
Модификация функции WinProc ............................................. 56
Обсуждение модификаций WinProc........................................ 56
Аннотированный исходный текст модифицированной
функции WinProc .................................................................... 57
Анализ проекта простойпрограммы для Windows ...................... 58
Резюме....................................................................................... 61
Примеры программ в Web .......................................................... 61
Инструкции по сборке и запуску............................................. 62
Глава 3. Минимальная легко тестируемая программа
для Pocket PC ............................................................................. 63
Пользовательский интерфейс минимальной программы
для Pocket PC ............................................................................. 63
Проектирование минимальной программы для Pocket PC ......... 64
Анализаторы сообщений ............................................................ 67
Работа с мастером Message Cracker Wizard................................ 70
Реализация минимального диалога ........................................... 73
Шаблоны диалогов и меню .................................................... 74
Функция WinMain .................................................................... 75
Функция DlgProc .................................................................... 77
Тела обработчиков сообщений .............................................. 79
Компонент PortabilityUtils ....................................................... 81
Компонент DataMgr ................................................................ 84
Сборка программы для настольного ПК ..................................... 85
Перенос программы на КПК ....................................................... 85
Анализ проекта минимальной диалоговой программы .............. 87
Резюме....................................................................................... 88
Примеры программ в Web .......................................................... 88
Инструкции по сборке и запуску............................................. 88
Глава 4. Обзор платформы Pocket PC ................................ 90
Графический интерфейс пользователя
для простой программы анимации ............................................. 90
Рисование изображений ............................................................ 91
Глава 8. Применение встроенных элементов
управления в графическом интерфейсе пользователя ..... 230
Применение встроенных элементов управления
в приложении ........................................................................... 230
Обзор встроенных элементов управления ........................... 232
Реализация интерфейса со встроенными элементами
управления........................................................................... 237
К вопросу о переносимости ................................................. 239
Использование групп элементов управления
для реализации дружелюбного интерфейса ............................ 240
Применение полосы прокрутки в паре с полем ввода .......... 241
Включение дружелюбной полосы прокрутки ........................ 244
Контроль прямого ввода в парное поле ............................... 248
Резюме..................................................................................... 249
Примеры программ в Web ........................................................ 249
Инструкции по сборке и запуску........................................... 250
Глава 9. Разработка сложного интерфейса
пользователя ............................................................................ 252
Программа рисования со сложным интерфейсом
пользователя............................................................................ 252
Применение графических кнопок для организации
иерархий .................................................................................. 257
Шаги, необхимые для включения в программу
графических кнопок ............................................................. 257
Пример добавления графических кнопок ............................. 258
Обзор реализации BitmapButtonMgr .................................... 262
Применение вкладок для организации категорий .................... 263
Шаги, необходимые для работы с компонентом
TabPageMgr и шаблонами вкладок ....................................... 264
Пример включения компонента TabPageMgr ........................ 264
Обзор реализации шаблонов страниц со вкладками ........... 270
Заключительные замечания для разработчиков....................... 271
Резюме..................................................................................... 272
Примеры программ в Web ........................................................ 272
Инструкции по сборке и запуску........................................... 272
Глава 10. Сохранение параметро в приложения.............. 274
Применение идеи многоуровневого дизайна
к решению задачи о хранении параметров .............................. 275
Описание пользовательского интерфейса программы ........ 150
Анализ организации программы .......................................... 155
Реализация программы обработки изображений ................ 160
Разработка заставки с помощью функций
из файла BitmapUtilities............................................................. 171
Описание пользовательского интерфейса программы ........ 171
Описание внутренней работы программы ........................... 172
Реализация программы вывода заставки ............................ 173
Анимация изображения............................................................ 176
Описание пользовательского интерфейса программы ........ 177
Реализация программы анимации изображения ................. 178
Подготовка ActiveSync для программ из этой главы ................. 184
Резюме..................................................................................... 187
Примеры программ в Web ........................................................ 187
Инструкции по сборке и запуску........................................... 188
Глава 7. Проектирование эффективных
программ ................................................................................... 192
Обоснование выбранного подхода к проектированию ............. 193
Окончательное разбиение на уровни ....................................... 205
Процесс реализации ................................................................ 207
Анализ кода .............................................................................. 208
Реализация менеджера типов данных DrawObjMgr .............. 208
Реализация менеджера объектов DefaultMgr ....................... 211
Добавление переменных и методов доступа
в компонент DataMgr ............................................................ 212
Добавление компонента CaretMgr ....................................... 213
Реализация компонента UserInputMgr
для обработки сообщений ................................................... 214
Модификация обработчиков в DlgProc
для взаимодействия с UserInputMgr..................................... 219
Расширение главного меню ................................................. 220
Модификация обработчика сообщения WM_COMMAND
с учетом пунктов меню ......................................................... 225
Добавление обработчика WM_INITMENUPOPUP
для индикации выбранной фигуры ....................................... 226
Замечания по поводу проекта и реализации ............................ 227
Резюме..................................................................................... 227
Примеры программ в Web ........................................................ 228
Инструкции по сборке и запуску........................................... 228
Выбор формата хранения......................................................... 278
Настройка менеджера базы данных параметров...................... 279
Пример настройки менеджера базы данных параметров ......... 280
Определение структуры записи в базе данных
параметров .......................................................................... 280
Определение записей по умолчанию для каждого
параметра ............................................................................ 281
Использование функций для взаимодействия
с базой данных параметров ................................................. 281
Обзор реализации уровней ...................................................... 283
Конфигурирование нижнего уровня для конкретного
хранилища................................................................................ 285
Резюме..................................................................................... 285
Примеры программ в Web ........................................................ 286
Инструкции по сборке и запуску........................................... 286
Глава 11. Многопоточные приложения
и синхронизация ...................................................................... 288
Разумное и неразумное применение потоков .......................... 288
Состояния потока................................................................. 290
Планирование потоков ......................................................... 291
Управление приоритетами ................................................... 292
Демонстрация влияния приоритетов ................................... 293
Введение в проблему синхронизации ...................................... 295
Решение проблемы синхронизации ..................................... 298
Некоторые детали проектирования...................................... 299
Реализация синхронизованных потоков................................... 301
Создание потоков ................................................................ 301
Реализация потока WinMain ................................................. 302
Реализация дочернего потока .................................................. 302
Создание объектов синхронизации ..................................... 303
Ожидание завершения шага ................................................ 303
Отправка сигнала о завершении шага.................................. 304
Ожидание завершения дочерних потоков ............................ 304
Резюме..................................................................................... 305
Примеры программ в Web ........................................................ 305
Инструкции по сборке и запуску........................................... 306
Глава 12. Использование COM&объектов ........................ 308
Модель компонентных объектов .............................................. 308
Создание COMFобъектов с помощью библиотеки ATL .............. 318
Создание COMFобъекта с помощью мастера ATL COM
AppWizard ............................................................................. 319
Вставка нового объекта с помощью мастера
ATL Object Wizard .................................................................. 320
Добавление методов объекта с помощью мастера
Add Method to Interface Wizard .............................................. 324
Реализация методов объекта ............................................... 325
Анализ COMFобъекта, созданного с помощью ATL ................... 326
Объявление класса .............................................................. 326
Определение класса ............................................................ 328
Глобальные функции и объекты ........................................... 329
Файл описания интерфейса ................................................. 330
Сценарий реестра ................................................................ 331
Создание COMFклиента ........................................................... 332
Получение информации об интерфейсе COMFобъекта ........ 333
Программирование доступа к COMFобъекту
через интерфейс .................................................................. 334
Уничтожение объекта ........................................................... 335
Регистрация COMFсервера на Pocket PC ................................. 336
Резюме..................................................................................... 337
Примеры программ в Web ........................................................ 337
Инструкции по сборке и запуску........................................... 338