лекции / Shchupak_Yu._Win32_API_Razrabotka_prilozheniy_dlya_Windows
.pdf
Краткое содержание
Предисловие............................................................................... |
13 |
||
Глава |
1. |
«Hello, World!», или Первые шаги |
|
|
|
к пониманию основных концепций Windows ......... |
16 |
Глава |
2. |
GDI — графический интерфейс |
|
|
|
устройства. Рисование линий, фигур, текста ......... |
58 |
Глава |
3. |
GDI. Палитры, растры, метафайлы....................... |
159 |
Глава |
4. |
Средства ввода........................................................ |
213 |
Глава |
5. |
Ресурсы Windows-приложения ............................. |
242 |
Глава |
6. |
Меню и быстрые клавиши ..................................... |
272 |
Глава |
7. |
Диалоговые окна .................................................... |
304 |
Глава |
8. |
Элементы управления общего пользования ....... |
379 |
Глава |
9. |
Многозадачность .................................................... |
441 |
Глава 10. Таймеры и время..................................................... |
485 |
||
Глава 11. |
Библиотеки динамической компоновки DLL ........ |
515 |
|
Глава 12. |
Специальные приложения ..................................... |
539 |
|
Приложение 1. Интегрированная среда Visual C++ 6.0....... |
563 |
||
Приложение 2. Интегрированная среда Visual Studio.NET .. |
577 |
||
Приложение 3. Работа с утилитой Spy++ ............................. |
584 |
||
Литература ............................................................................... |
587 |
||
Алфавитный указатель ........................................................... |
588 |
||
4 |
Содержание |
Содержание
Предисловие............................................................................... |
13 |
Кому адресована эта книга........................................................................ |
14 |
Как работать с книгой ............................................................................... |
14 |
От издательства ........................................................................................ |
15 |
Глава 1. «Hello, World!», или Первые шаги |
|
к пониманию основных концепций Windows ........... |
16 |
Базовые концепции ................................................................................... |
16 |
Графический интерфейс пользователя ................................................. |
16 |
Многозадачность .................................................................................. |
17 |
Управление памятью ............................................................................ |
18 |
Независимость от аппаратных средств ................................................. |
19 |
Вызовы функций и DLL ......................................................................... |
19 |
Объектно-ориентированное программирование ................................... |
20 |
Типы данных Win32 .............................................................................. |
20 |
Архитектура, управляемая событиями .................................................. |
21 |
Оконная процедура .............................................................................. |
22 |
Оконные классы ................................................................................... |
23 |
Цикл обработки сообщений .................................................................. |
25 |
Наипростейшая программа для Windows ................................................... |
25 |
Программа «Hello, world!» — первый вариант ........................................... |
30 |
Файл исходного текста программы ....................................................... |
31 |
Регистрация класса окна ...................................................................... |
32 |
Создание окна ...................................................................................... |
35 |
Использование функции CreateWindowEx ............................................. |
38 |
Отображение окна на экране ............................................................... |
39 |
Обработка сообщений .......................................................................... |
40 |
Оконная процедура .............................................................................. |
42 |
Содержание |
5 |
|
|
Программа «Hello, world!» — второй вариант ............................................ |
46 |
Функции поддержки окон.......................................................................... |
49 |
Часто используемые сообщения ................................................................ |
50 |
Модификация характеристик окна ............................................................ |
51 |
Особенности программирования для Windows .......................................... |
52 |
Синхронные и асинхронные сообщения................................................ |
53 |
Посылка сообщений из приложения ..................................................... |
54 |
Использование глобальных или статических переменных .................... |
55 |
Получение дескриптора экземпляра приложения ................................. |
55 |
Предотвращение зависания приложения в случае |
|
медленной обработки отдельных событий ....................................... |
56 |
Использование утилиты Spy++ ............................................................ |
57 |
Глава 2. GDI — графический интерфейс устройства. |
|
Рисование линий, фигур, текста .......................................... |
58 |
Контекст устройства .................................................................................. |
59 |
Типы контекстов устройства................................................................. |
59 |
Регионы Windows. Отсечение ............................................................... |
60 |
Контекст дисплея ................................................................................. |
60 |
Использование сообщения WM_PAINT .................................................. |
63 |
Контекст принтера................................................................................ |
65 |
Контекст в памяти (совместимый контекст) .......................................... |
65 |
Метафайловый контекст ....................................................................... |
66 |
Информационный контекст .................................................................. |
66 |
Системы координат и преобразования ...................................................... |
66 |
Экранные, оконные и клиентские координаты...................................... |
66 |
Типы координатных систем .................................................................. |
67 |
Физическая система координат ............................................................ |
68 |
Система координат устройства ............................................................. |
68 |
Страничная система координат и режимы отображения....................... |
69 |
Мировая система координат ................................................................. |
72 |
Получение информации о возможностях устройства................................. |
74 |
Управление цветом. Вывод пиксела .......................................................... |
76 |
Цветовое пространство HLS.................................................................. |
76 |
Цветовое пространство RGB ................................................................. |
76 |
Определение цвета при работе с палитрой .......................................... |
77 |
Вывод пикселов .................................................................................... |
78 |
6 |
Содержание |
|
|
Атрибуты контекста устройства, влияющие на рисование......................... |
78 |
Режим рисования. Бинарные растровые операции ............................... |
79 |
Режим смешивания фона и цвет фона графического элемента ............ |
81 |
Общие операции с графическими объектами ............................................ |
81 |
Линии и кривые ........................................................................................ |
82 |
Рисование отрезков .............................................................................. |
83 |
Äóãè ..................................................................................................... |
84 |
Кривые Безье ....................................................................................... |
86 |
Перья ........................................................................................................ |
87 |
Стандартные перья............................................................................... |
88 |
Простые перья...................................................................................... |
89 |
Расширенные перья .............................................................................. |
93 |
Кисти......................................................................................................... |
96 |
Стандартные кисти ............................................................................... |
97 |
Пользовательские кисти ....................................................................... |
97 |
Замкнутые фигуры .................................................................................... |
101 |
Прямоугольники ................................................................................... |
101 |
Эллипсы, сегменты, секторы и закругленные прямоугольники ............. |
105 |
Многоугольники.................................................................................... |
107 |
Регионы и отсечение ................................................................................. |
109 |
Создание регионов ............................................................................... |
109 |
Операции с объектами регионов .......................................................... |
111 |
Прорисовка регионов ........................................................................... |
111 |
Отсечение ............................................................................................ |
112 |
Отображение текста.................................................................................. |
113 |
Наборы символов и кодировки ............................................................. |
114 |
Unicode ................................................................................................. |
117 |
Шрифты ............................................................................................... |
118 |
Вывод текста ........................................................................................ |
129 |
Полосы прокрутки и вывод текста ........................................................ |
141 |
Примеры программ.................................................................................... |
146 |
Просмотрщик текстовых файлов .......................................................... |
146 |
Вывод временной диаграммы напряжения |
|
переменного электрического тока ................................................... |
153 |
Глава 3. GDI. Палитры, растры, метафайлы ......................... |
159 |
Палитры .................................................................................................... |
159 |
Основные принципы управления палитрами ........................................ |
159 |
Содержание |
7 |
|
|
Системная палитра ............................................................................... |
161 |
Логическая палитра.............................................................................. |
166 |
Растры....................................................................................................... |
174 |
Аппаратно-независимые растры ........................................................... |
175 |
Аппаратно-зависимые растры............................................................... |
193 |
DIB-секции ........................................................................................... |
200 |
Тернарные растровые операции ........................................................... |
202 |
Метафайлы ............................................................................................... |
206 |
Создание метафайла ............................................................................ |
207 |
Воспроизведение метафайла ................................................................ |
210 |
Глава 4. Средства ввода .......................................................... |
213 |
Клавиатура................................................................................................ |
213 |
Фокус ввода.......................................................................................... |
214 |
Клавиши и символы.............................................................................. |
215 |
Аппаратные сообщения ........................................................................ |
215 |
Символьные сообщения........................................................................ |
217 |
Работа с кареткой................................................................................ |
219 |
Примитивный текстовый редактор ....................................................... |
220 |
Ìûøü ........................................................................................................ |
225 |
Терминология, связанная с мышью ...................................................... |
226 |
Сообщения мыши ................................................................................. |
226 |
Обработка двойного щелчка................................................................. |
227 |
Обработка сообщений от колеса мыши ................................................ |
227 |
Рисуем мышью...................................................................................... |
228 |
Эластичные прямоугольники ................................................................ |
234 |
Улучшенное приложение для просмотра текстовых файлов ................. |
237 |
Глава 5. Ресурсы Windows-приложения................................ |
242 |
Редакторы ресурсов .................................................................................. |
243 |
Пиктограммы............................................................................................. |
243 |
Создание пиктограммы с помощью графического редактора................ |
246 |
Импорт существующей пиктограммы .................................................... |
250 |
Просмотр и редактирование ресурсов приложения .............................. |
251 |
Использование ресурса в приложении ................................................. |
252 |
Курсоры .................................................................................................... |
256 |
Растровые образы ..................................................................................... |
260 |
Ресурсы, определяемые программистом.................................................... |
263 |
8 |
Содержание |
|
|
Доступ к данным в ресурсе................................................................... |
263 |
Воспроизведение звуковых файлов........................................................... |
264 |
Таблицы строк .......................................................................................... |
268 |
Глава 6. Меню и быстрые клавиши ....................................... |
272 |
Организация и виды меню ........................................................................ |
272 |
Типы пунктов меню .............................................................................. |
273 |
Системное меню ................................................................................... |
274 |
Клавиатурный интерфейс меню............................................................ |
273 |
Статус пунктов меню ............................................................................ |
275 |
Отметка пунктов меню ......................................................................... |
275 |
Пункт меню, применяемый по умолчанию ............................................ |
276 |
Определение меню в виде ресурса ........................................................... |
276 |
Шаблон меню ....................................................................................... |
276 |
Вызов редактора меню ......................................................................... |
277 |
Атрибуты пункта меню ......................................................................... |
278 |
Уровни меню ........................................................................................ |
279 |
Процедура определения пункта для меню i-го уровня.......................... |
279 |
Процедура определения меню нулевого уровня ................................... |
280 |
Добавление меню к окну приложения....................................................... |
280 |
Внесение изменений в меню ..................................................................... |
281 |
Функция CheckMenuItem....................................................................... |
282 |
Функция CheckMenuRadioItem .............................................................. |
282 |
Функция EnableMenuItem...................................................................... |
283 |
Функция ModifyMenu............................................................................. |
283 |
Функции для получения дескриптора меню.......................................... |
284 |
Сообщения меню....................................................................................... |
284 |
Приложение MenuDemo1........................................................................... |
286 |
Работа с контекстным меню ...................................................................... |
293 |
Определение шаблона контекстного меню ........................................... |
293 |
Загрузка меню ...................................................................................... |
293 |
Вызов меню .......................................................................................... |
293 |
Приложение MenuDemo2 ...................................................................... |
294 |
Быстрые клавиши...................................................................................... |
299 |
Модификация определения ресурса меню ............................................ |
299 |
Таблица быстрых клавиш ..................................................................... |
300 |
Загрузка таблицы быстрых клавиш....................................................... |
301 |
Содержание |
9 |
|
|
Модификация цикла обработки сообщений .......................................... |
301 |
Приложение MenuDemo3 ...................................................................... |
302 |
Глава 7. Диалоговые окна....................................................... |
304 |
Типы диалоговых окон .............................................................................. |
304 |
Элементы управления в диалоговом окне ................................................. |
305 |
Создание и обработка диалогового окна ................................................... |
307 |
Шаблон диалогового окна .................................................................... |
307 |
Шаблонная система единиц.................................................................. |
308 |
Модальный диалог .................................................................................... |
308 |
Вызов и использование редактора диалоговых окон ............................ |
309 |
Добавление элемента управления Рисунок .......................................... |
311 |
Добавление элементов управления Надпись ........................................ |
312 |
Выравнивание элементов управления на форме диалога ..................... |
314 |
Определение диалоговой процедуры и вызов диалога ......................... |
316 |
Изменение атрибутов элемента управления ......................................... |
320 |
Использование других элементов управления........................................... |
323 |
Кнопки.................................................................................................. |
323 |
Кнопка Owner draw............................................................................... |
325 |
Флажки................................................................................................. |
331 |
Переключатели .................................................................................... |
333 |
Групповая рамка .................................................................................. |
333 |
Пример использования групповой рамки, флажков и переключателей .. |
334 |
Клавиатурный интерфейс и порядок обхода элементов управления .... |
340 |
Окно редактирования ........................................................................... |
341 |
Список .................................................................................................. |
344 |
Комбинированный список ..................................................................... |
356 |
Немодальный диалог................................................................................. |
366 |
Различия между модальными и немодальными окнами диалога........... |
366 |
Пример использования немодального окна диалога ............................. |
367 |
Окно сообщений........................................................................................ |
372 |
Диалоговые окна общего пользования...................................................... |
374 |
Глава 8. Элементы управления общего пользования .......... |
379 |
Основы применения .................................................................................. |
380 |
Инициализация библиотеки.................................................................. |
380 |
Создание элементов управления общего пользования ......................... |
382 |
Стили элементов управления общего пользования .............................. |
383 |
10 |
Содержание |
|
|
Обмен сообщениями ............................................................................. |
384 |
Элементы управления главного окна ........................................................ |
385 |
Панель инструментов ........................................................................... |
385 |
Окно подсказки .................................................................................... |
406 |
Замена класса KWnd на класс KWndEx ................................................. |
408 |
Строка состояния ................................................................................. |
413 |
Другие элементы управления.................................................................... |
423 |
Индикатор процесса ............................................................................. |
423 |
Регулятор ............................................................................................. |
428 |
Счетчик и поле с прокруткой................................................................ |
435 |
Создание счетчика ............................................................................... |
435 |
Глава 9. Многозадачность....................................................... |
441 |
Объекты ядра ............................................................................................ |
441 |
Процессы и потоки .................................................................................... |
443 |
Планирование потоков .............................................................................. |
444 |
Классы приоритетов процесса и приоритеты потоков .......................... |
445 |
Управление процессами ............................................................................ |
447 |
Использование функции CreateProcess ................................................. |
447 |
Завершение процесса ........................................................................... |
448 |
Запуск обособленных дочерних процессов ........................................... |
449 |
Управление потоками................................................................................ |
451 |
Функция CreateThread........................................................................... |
451 |
Функция Sleep ...................................................................................... |
452 |
Пример многопоточного приложения ................................................... |
452 |
Взаимодействие потоков через глобальную переменную ..................... |
456 |
Синхронизация.......................................................................................... |
459 |
Атомарный доступ и семейство Interlocked-функций ............................ |
459 |
Критические секции ............................................................................. |
460 |
Wait-функции........................................................................................ |
461 |
События................................................................................................ |
464 |
Семафоры............................................................................................. |
466 |
Мьютексы ............................................................................................. |
467 |
Обмен данными между процессами........................................................... |
469 |
Виртуальная память. Адресное пространство процесса ........................ |
470 |
Файлы данных, проецируемые в память ............................................... |
472 |
Использование проекции файла для реализации разделяемой памяти .. 472
