Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции / Shchupak_Yu._Win32_API_Razrabotka_prilozheniy_dlya_Windows

.pdf
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
13.15 Mб
Скачать

Краткое содержание

Предисловие...............................................................................

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