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

Поcобие_БЕЛОВ_Графический_интерфейс_API

.pdf
Скачиваний:
155
Добавлен:
18.03.2016
Размер:
2.75 Mб
Скачать

341

Продолжение прил. 2

Стиль

 

 

Пояснение

 

 

 

 

LBS_STANDARD

 

 

Комбинация стилей LBS_NOTIFY, LBS_SORT,

 

 

 

WS_BORDER

и WS_VSCROLL. Обычно

 

 

 

используют

для

создания

простейшего

 

 

 

одноколоночного списка

 

 

 

 

 

 

 

LBS_USETABSTOPS

 

 

При отображении

строк преобразовывать

 

 

 

символы табуляции. По умолчанию один

 

 

 

символ табуляции расширяется на 32 единицы

 

 

 

ширины диалоговых панелей (или 8 единиц

 

 

 

средней ширины текущего шрифта)

 

 

 

 

 

LBS_WANTKEY-

 

 

Родительское окно от списка получает

BOARDINPUT

 

 

сообщения

WM_VKEYTOITEM

или

 

 

 

WM_CHARTOITEM при работе со списком с

 

 

 

помощью клавиатуры. Это дает возможность

 

 

 

приложению

выполнить

специальную

 

 

 

обработку ввода с клавиатуры

 

 

 

 

 

 

 

Таблица 2.7. Список стилей окон класса «ComboBox»

 

 

 

 

 

 

 

Стиль

 

Пояснение

 

 

 

 

CBS_AUTOHSCROLL

 

Автоматическая свертка текста по горизонтали в

 

 

окне редактирования

 

 

 

 

 

CBS_DISABLENOSCROLL

Вертикальную полосу просмотра отображать в

 

 

неактивном состоянии, даже если в списке

 

 

помещаются все строки

 

 

 

 

 

 

CBS_DROPDOWN

 

Подобен CBS_SIMPLE, но список остается в

 

 

невидимом состоянии до тех пор, пока

 

 

пользователь не нажмет пиктограмму,

 

 

предназначенную для отображения списка

 

 

 

 

CBS_DROPDOWNLIST

 

Подобен CBS_DROPDOWN, но однострочный

 

 

текстовый редактор может быть использован

 

 

только для отображения текста, а не для

 

 

редактирования

 

 

 

 

 

 

 

 

CBS_LOWERCASE

 

Преобразовать все символы в строчные

 

CBS_SORT

 

Автоматически сортирует строки, введенные в

 

 

окно списка

 

 

 

 

 

 

 

CBS_SIMPLE

 

Создается список, который всегда виден и

 

 

расположен под окном однострочного редактора

 

 

текста, содержащего выделенную в списке

 

 

 

 

CBS_UPPERCASE

 

Преобразовать все символы в прописные

 

342

Приложение 3

Таблица 3.1. Список системных цветов в RGB-представлении

Красный цвет

Зеленый цвет

Голубой цвет

Цвет в системной

 

 

 

палитре

 

 

 

 

0

0

0

Черный

80

0

0

Темно-красный

0

80

0

Темно-зеленый

80

80

0

Темно-желтый

0

0

80

Темно-голубой

80

0

80

Темно-малиновый

0

80

80

Темно-синий

192

192

192

Светло-серый

192

220

192

Светло-зеленый

166

202

240

Светло-голубой

255

251

240

Кремовый

160

160

164

Светло-серый

80

80

80

Серый

255

0

0

Красный

0

255

0

Зеленый

255

255

0

Желтый

0

0

255

Синий

255

0

255

Малиновый

0

255

255

Голубой (циан)

255

255

255

Белый

 

Таблица 3.2. Список режимов рисования

 

 

Режимы рисования

Цвет пикселя

R2 BLACK

Черный

R2 COPYPEN

Цвет пера

R2MASKNOTPEN или

Комбинация цвета пикселя до рисования и

R2_MERGENOTPEN

инверсии цвета пера

 

 

R2_MASKPEN или

Комбинация цвета пикселя до рисования и цвета

R2_MERGEPEN

пера

 

 

R2+MASKPENNOT или

Комбинация инверсии цвета пикселя до

R2_MERGEPENNOT

рисования и цвета пера

 

 

R2_NOP

Остается неизменным

R2_NOT

Инверсия цвета пикселя до рисования

R2_NOTCOPYPEN

Инверсия цвета пера

 

343

 

Окончание прил. 3

 

 

Режимы рисования

Цвет пикселя

R2_NOTMASKPEN или

Инверсия цвета пикселя до рисования

R2_NOTMERGEPEN

 

R2_NOTXORPEN

Инверсия цвета R2XORPEN

R2_WHITE

Белый

R2_XORPEN

Операция ИСКЛЮЧАЮЩЕЕ ИЛИ к цветам

 

пикселя до рисования и пера

 

 

344

Приложение 4

Таблица 4.1. Список кодов виртуальных клавиш

Символическое имя

Код виртуальной

Клавиша на клавиатуре

 

 

клавиши

 

 

 

 

 

 

 

 

Не определено

0x0

 

 

 

 

 

 

 

VK_LBUTTON

0x1

 

 

(код мыши)

 

 

 

 

 

 

 

 

 

VK_RBUTTON

0x2

 

 

(код мыши)

 

 

 

 

 

 

 

 

VK_CANCEL

0x3

Control + Break

 

VK_MBUTTON

0x4

 

 

(код мыши)

 

 

 

 

 

 

 

 

 

Не определено

0x5 – 0x7

 

 

VK BACK

0x8

Клавиша забоя Backspace

 

VK_TAB

0x9

Tab

 

 

Не определено

0xa – 0xb

 

 

VK_CLEAR

0xc

Соответствует клавише 5

 

 

 

дополнительной клавиатуры при

 

 

выключенном режиме Num Lock

 

 

 

 

 

VK_RETURN

0xd

Enter

 

 

Не определено

0xe – 0xf

 

 

VK_HIFT

0x10

Shift

 

 

VK_CONTROL

0x11

Control

 

 

VK_MENU

0x12

Alt

 

 

VK_PAUSE

0x13

Pause

 

 

VK_CAPITAL

0x14

Caps Lock

 

 

He определено

0x15 – 0x1a

 

 

VK_ESCAPE

1b

Esc

 

 

He определено

0xlc – 0xlf

 

 

VK_SPACE

0x20

Клавиша пробела

 

VK_PRIOR

0x21

PgUP

 

 

VK_NEXT

0x22

PgDn

 

 

VK_END

0x23

End

 

 

VK_HOME

0x24

Home

 

 

VK_LEFT

0x25

Клавиша

перемещения

влево

 

 

 

 

 

VK_UP

0x26

Клавиша

перемещения

вверх

VK_DOWN

0x28

Клавиша

перемещения

вниз

VK_SELECT

0x29

 

 

VK_RIGHT

0x27

Клавиша

перемещения

вправо

345

 

 

Продолжение прил. 4

 

 

 

Символическое имя

Код виртуальной

Клавиша на клавиатуре

 

клавиши

 

 

 

 

VK_PRINT

0x2a

VK_EXECUTE

0x2b

VK_SNAPSHOT

0x2c

PrtSc

VK_INSERT

0x2d

Insert

VK_DELETE

0x2e

DeIete

VK_HELP

0x2f

He определено

0x30

0

0x31

1

0x32

2

0x33

3

0x34

4

0x35

5

0x36

6

0x37

7

0x38

8

0x39

9

0x3a – 0x40

0x41

A

0x42

B

0x43

C

0x44

D

0x45

E

0x46

F

0x47

G

0x48

H

0x49

I

0x4a

J

0x4b

K

0x4c

L

0x4d

M

0x4e

N

0x4f

0

0x50

P

0x51

Q

0x52

R

0x53

S

0х54

T

0x55

U

346

 

 

Продолжение прил. 4

 

 

 

Символическое имя

Код виртуальной

Клавиша на клавиатуре

 

клавиши

 

0x56

V

0x57

w

0x58

x

0x59

Y

0x5a

Z

0x5b-0x5f

VK_NUMPAD0

0x60

0 на цифровой клавиатуре

VK_NUMPAD1

0x61

1 на цифровой клавиатуре

VK+NUMPAD2

0x62

2 на цифровой клавиатуре

VK_NUMPAD3

0x63

3 на цифровой клавиатуре

VK_NUMPAD4

0x64

4 на цифровой клавиатуре

VK_NUMPAD5

0x65

5 на цифровой клавиатуре

VK_NUMPAD6

0x66

6 на цифровой клавиатуре

VK_NUMPAD7

0x67

7 на цифровой клавиатуре

VK_NUMPAD8

0x68

8 на цифровой клавиатуре

VK_NUMPAD9

0x69

9 на цифровой клавиатуре

VK_MULTIPLAY

0x6a

* на цифровой клавиатуре

VK_ADD

0x6b

+ на цифровой клавиатуре

VK_SEPARATOR

0x6c

VK_SUBTRACT

0x6d

- на цифровой клавиатуре

VK_DECIMAL

0х6е

0 на цифровой клавиатуре

VK_DIVIDE

0x6f

/ на цифровой клавиатуре

VK_Fl

0x70

F1

VK_F2

0x71

F2

VK_F3

0x72

F3

VK_F4 .

0x73

F4

VK_F5

0x74

F5

VK_F6

0x75

F6

VK_F7

0x76

F7

VK_F8

0x77

F8

VK_F9

0x78

F9

VK_F10

0x79

F10

VK_F11

0x7а

F11

VK_F12

0x7b

F12

VK_NUMLOCK

0x90

Num Lock

VK_SCROLL

0x91

Scroll Lock

347

ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ

3

ГЛАВА 1. СОЗДАНИЕ ОКОН

5

1.1. Виды окон

5

1.2. Класс окон

5

1.2.1. Описание используемых классом окон ресурсов

6

1.2.2. Пример регистрации класса окон

7

1.2.3. Функция окна

8

1.3. Создание окон

11

1.4. Главная функция приложения

14

1.5. Структура текста приложения

17

1.6. Вспомогательные функции создания окон

21

1.6.1. Функции поиска и определения состояния окон

21

1.6.2. Функции перемещения окон

22

1.6.3. Сообщения приложения для пользователя

25

1.7. Примеры создания окон

28

1.7.1. Проверка наличия предыдущего экземпляра

28

1.7.2. Расположение окон черепицей

32

Упражнения

37

Контрольные вопросы

40

ГЛАВА 2. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ

41

2.1. Кнопки

42

2.1.1. Создание кнопок

42

2.1.2. Кнопки и сообщения

45

2.1.3. Флажки и переключатели

50

2.2. Статический элемент управления

51

2.3. Полоса прокрутки

52

2.3.1. Создание полосы прокрутки

53

2.3.2. Простейшие полосы прокрутки

54

2.3.3. Сообщения от полосы прокрутки

57

2.3.4. Управление полосой прокрутки

57

2.3.5. Пример обработки сообщений от полос прокрутки

60

2.3.6. Новые функции управления полосами прокрутки

64

2.3.7. Пример окна приложения с полосой просмотра

66

2.4. Редактор текста

70

2.4.1. Создание редактора

70

348

 

2.4.2. Сообщения для редактора текста

71

2.4.3. Сообщения от редактора текста

72

2.4.4. Пример работы с однострочным редактором

73

2.5. Списки строк

75

2.5.1. Создание списка

75

2.5.2. Сообщения от списка

76

2.5.3. Сообщения для списка

76

2.5.4. Пример работы со списком

78

2.6. Комбинированный список

81

2.6.1. Создание комбинированного списка

81

2.6.2. Коды извещения

81

2.6.3. Сообщения для комбинированного списка

82

2.6.4. Пример работы с комбинированным списком

83

Контрольные вопросы

87

ГЛАВА 3. ВЫВОД В ОКНО

88

3.1. Сообщение WM_PAINT

89

3.2. Виды контекста отображения

94

3.3. Установка атрибутов контекста отображения

106

3.4. Вывод текста

113

3.4.1. Настройка параметров шрифта

113

3.4.2. Выбор шрифта в контекст отображения

116

3.4.3. Функции вывода текста

117

3.4.4. Пример вывода текста в окно

118

3.4.5. Определение метрик шрифта

121

3.5. Рисование геометрических фигур

131

3.5.1. Функции рисования точки

131

3.5.2. Функции рисования линий

132

3.5.3. Функции рисования замкнутых фигур

142

Упражнения

144

ГЛАВА 4. МЕНЮ

148

4.1. Элементы меню

149

4.2. Создание меню

151

4.2.1. Вставка элементов в меню

153

4.2.2. Удаление элементов из меню

158

4.2.3. Управление состоянием элементов меню

164

4.2.4. Получение информации о меню

172

4.3. Сообщения от меню

177

349

 

4.4. Плавающее меню

178

4.5. Акселераторы

182

Упражнения

195

Контрольные вопросы

198

ГЛАВА 5. ПАНЕЛЬ ИНСТРУМЕНТОВ И СТРОКА

 

СОСТОЯНИЯ

199

5.1. Панель инструментов

199

5.1.1. Создание панели инструментов

199

5.1.2. Управление состоянием кнопок панели

209

5.1.3. Вывод подсказок в панели инструментов

220

5.2. Строка состояния

231

5.2.1. Создание строки состояния

231

5.2.2. Сообщения о меню в строке состояния

234

Упражнения

243

Контрольные вопросы

244

ГЛАВА 6. ДИАЛОГОВЫЕ ПАНЕЛИ

245

6.1. Характеристики диалоговых панелей

245

6.1.1. Единицы диалоговой панели

246

6.1.2. Стили диалоговой панели

247

6.1.3. Функция окна диалоговой панели

248

6.2. Создание диалоговой панели

250

6.2.1. Создание модальной диалоговой панели

250

6.2.2. Создание немодальной диалоговой панели

251

6.2.3. Шаблон диалоговой панели

251

6.2.4. Пример немодальной диалоговой панели

266

6.3. Сообщения и диалоговые панели

271

6.4. Блокнот диалоговых панелей

283

6.5. Стандартные диалоговые панели

299

6.5.1. Панели для открытия или сохранения файлов

299

6.5.2. Панель для выбора цвета

309

6.5.3. Панель для выбора шрифта

315

Упражнения

323

Контрольные вопросы

326

СПИСОК ИСПОЛЬЗОВАННОЙ И РЕКОМЕНДУЕМОЙ

 

ЛИТЕРАТУРЫ

327

ПРИЛОЖЕНИЯ

329

350

УЧЕБНОЕ ИЗДАНИЕ

Евгений Александрович Белов

ПРОГРАММИРОВАНИЕ ПРИЛОЖЕНИЙ WINDOWS. API ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ

Редактор издательства Л.Н. Мажугина Компьютерный набор Е.А. Белов

Темплан 2010 г., п.10

Подписано в печать 19.07.10 Формат 60х84 1/16. Бумага офсетная. Офсетная печать. Усл. печ.л. 12,52 Уч.-изд.л. 12,52 Тираж 70 экз. Заказ .

Брянский государственный технический университет 241035, г. Брянск, бульвар им. 50-летия Октября, 7, тел. 58-82-49

Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16