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

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

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

331

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

Таблица 1.3. Список значений, определенных в системе курсоров мыши

Значение

 

Назначение

 

 

 

 

 

IDC_APPSTARTING

 

Стандартная стрелка и малые песочные часы

IDC_ARROW

 

Стандартная стрелка

IDC_CROSS

 

Перекрестие

 

IDC_BEAM

 

Текстовый курсор в виде I

IDC_NO

 

Перечеркнутый круг

IDC_SIZEALL

 

Четырехсторонняя стрелка

IDC_SIZENESW

 

Двусторонняя стрелка (на северо-восток и юго-

 

 

запад)

 

 

 

 

 

IDC_SIZENS

 

Двусторонняя стрелка (на север и юг)

IDC_SIZENWSE

 

Двусторонняя стрелка (на северо-запад и юго-восток)

IDC_SIZEWE

 

Двусторонняя стрелка (на запад и восток)

IDC_UPARROW

 

Вертикальная стрелка

IDC_WAIT

 

Песочные часы

 

 

Таблица 1.4. Список значений системных цветов

 

 

 

Идентификатор цвета

 

Назначение в системе

COLOR_ACTIVEBORDER

Рамка активного окна

 

 

COLOR_ACTIVECAPTION

Заголовок активного окна

 

 

COLOR_APPWORKSPACE

Фон MDI-окна

COLOR_BACKGROUND,

Рабочий стол

COLOR_DESKTOP

 

 

COLOR_BTNFACE

 

Цвет трехмерных элементов

 

 

COLOR_BTNHIGHLIGHT

Выбранная кнопка

 

 

 

COLOR_BTNSHADOW

 

Тень трехмерных элементов

 

 

 

COLOR_BTNTEXT

 

Текст надписи кнопки

 

 

COLOR_CAPTIONTEXT

Текст заголовка окна, кнопок,

 

 

 

полосы просмотра

COLOR_GRAYTEXT

 

Текст заблокированного элемента

COLOR_HIGHLIGHT

 

Выбранный элемент управления

COLOR_LIGHLIGHTTEXT

Текст выбранного элемента

COLOR_INACTIVEBORDER

Рамка неактивного окна

COLOR_INACTIVECAPTION

Заголовок неактивного окна

COLOR_INACTIVECAPTIONTEXT

Текст заголовка для неактивного

 

 

 

окна

 

 

 

COLOR_MENU

 

Фон меню

COLOR_MENUTEXT

 

Текст меню

 

 

332

 

 

 

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

 

 

 

 

Идентификатор цвета

 

 

Назначение в системе

COLOR_SCROLLBAR

 

 

Внутренняя область полосы

 

 

 

просмотра

 

 

 

 

COLOR_WINDOW

 

 

Фон окна

COLOR_WINDOWFRAME

 

Рамка окна

COLOR_WINDOWTEXT

 

Текст в окне

COLOR_3DDKSHADOW

 

Темная тень трехмерных элементов

 

 

 

 

COLOR_BTNHILIGHT

 

 

Цвет граней выбранных трехмерных

 

 

 

элементов

 

 

 

 

COLOR_3DLIGHT

 

 

Цвет граней трехмерных элементов

COLOR_INFOBK

 

 

Фон панели инструментов

COLOR_INFOTEXT

 

 

Текст на панели инструментов

 

 

Таблица 1.5. Список значений стилей окон

 

 

Константа

Описание стиля

 

 

WS_BORDER

Окно с рамкой

 

 

WS_CAPTION

Окно с заголовком (включает стиль WS_BORDER)

 

 

WS_CHILD или

Дочернее окно

WS_CHILDWINDOW

 

 

 

WS_CLIPCHILDREN

Родительское окно не перерисовывает те области,

 

которые

затенены собственными дочерними

 

 

WS_CLIPSIBLINGS

Дочернее окно не перерисовывает те области,

 

которые затенены другими дочерними окнами того

 

же родителя

WS_DISABLED

Создать заблокированное окно

 

 

WS_DLGFRAME

Окно с двойной рамкой без заголовка

 

 

WS_GROUP

Определяет первый элемент группы элементов

 

управления, которая состоит из этого элемента и

 

последующих за ним элементов до элемента со

 

стилем WS_GROUP. Первый элемент группы имеет

 

стиль WS_TABSTOP, чтобы пользователь мог

 

перемещаться между группами нажатием клавиш

 

Tab.

 

 

 

 

WS_HSCROLL

Окно с горизонтальной полосой просмотра

WS_ICONIC или

Изначально свернутое в пиктограмму окно

WS_MINIMIZE

 

 

 

 

 

WS_MAXIMIZE

Окно максимально возможного размера

 

333

 

 

 

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

 

 

 

Константа

Описание стиля

 

 

 

WS_MAXIMIZEBOX

Окно с кнопкой восстановления/максимизации

 

размера. Используют со стилями WS OVERLAPPED

 

 

WS_OVERLAPPED

Перекрывающееся окно, имеющее заголовок и

 

рамку

 

 

 

WS_MINIMIZEBOX

Окно с кнопкой сворачивания окна в пиктограмму.

 

Используют со стилями WS OVERLAPPED и

 

WS_CAPTION

 

 

 

WS_OVERLAPPEDWI

Окно с комбинацией стилей WS_OVERLAPPED,

NDOW

WS_THICKFRAME,

WS_SYSMENU,

 

WS_MINIMIZEBOX и WS_MAXIMIZEBOX

WS_POPUP

Временное окно

 

WS_POPUPWINDOW

Комбинация стилей WS_POPUP, WS_BORDER и

 

WS_SYSMENU. Для того чтобы сделать системное

 

меню доступным, необходимо добавить стиль

 

WS_CAPTION

 

WS_SIZEBOX

Окно с толстой рамкой для изменения размера окна

WS_SYSMENU

Окно с системным меню.

Объединяют с

 

WS_CAPTION

 

 

 

WS_TABSTOP

Элемент управления, который получает фокус ввода

 

с клавиатуры при нажатии клавиши Tab

 

 

WS_VISIBLE

Окно становится видимым сразу после создания

WS_VSCROLL

Окно с вертикальной полосой просмотра

MDIS_ALLCHILDSTY

Используется при создании дочерних MDI-окон и

LES

определяет окна, которые могут иметь любые

 

комбинации стилей. По умолчанию дочерние MDI-

 

окна имеют стили WS_MINIMIZE, WS_MAXIMIZE,

 

WS_VSCROLL, WS_HSCROLL

 

 

 

 

 

 

 

 

334

 

 

 

 

 

 

 

 

Приложение 2

 

 

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

 

 

 

 

 

 

Имя класса

Пояснение

 

 

 

Сообщение

 

 

 

 

 

 

родительскому

 

 

 

 

 

 

окну

button

Окно, состояние которого изменяется при

WM_COMMAND

 

выборе и нажатии. Это нажимающиеся

 

 

кнопки (push button), переключатели (radio

 

 

button) и флажки (check box)

 

 

 

 

 

static

Текстовое поле, прямоугольник выделения

WM_NCHITTEST

 

и другие элементы оформления

 

 

 

 

 

scrollbar

Полоса прокрутки – прямоугольник с

WM_HSCROLL

 

ползунком и стрелками направления в оба

и

 

конца. Родительское окно обеспечивает

WM_VSCROLL

 

калибровку и установку позиций ползунка.

 

 

Полоса прокрутки имеет такие же вид и

 

 

функцию, что и полосы просмотра окна, но

 

 

может появиться где угодно. Она также

 

 

обеспечивает изменение размеров окна

 

 

 

 

edit

Окно ввода текста из клавиатуры или

WM_COMMAND

 

редактор

 

 

 

 

 

 

 

listbox

Список символьных строк. При просмотре в

WM_COMMAND

 

каждый момент подсвечивается одна строка

 

 

и

о

ней

передается

сообщение

 

 

родительскому окну

 

 

 

 

 

combobox

Элемент управления, состоящий из списка и

WM_COMMAND

 

поля выбора. Список может быть распахнут

 

 

или свернут.

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

Стили

 

Описание

 

BS_3STATE

Флажок (квадратик), который может находиться

 

во включенном (перечеркнут), выключенном (не

 

перечеркнут) и неактивном (отображается

 

серым цветом) состоянии

 

 

 

BS_AUTO3STATE

То же, что и BS_3STATE, но вид квадратика

 

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

 

циклически

отображая

включенное,

 

выключенное и неактивное состояние

 

335

 

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

 

 

Стили

Описание

BS_AUTOCHECKBOX

Флажок, который может находиться только во

 

включенном или выключенном (неактивном)

 

состоянии

BS_AUTORADIOBUTT

Переключатель (окружность), который может

ON

находиться во включенном (внутри имеется

 

жирная черная точка) или выключенном (внутри

 

нет точки) состоянии. В группе может быть

 

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

 

 

BS_CHECKBOX

То же, что и BS_AUTOCHECKBOX, но с текстом

 

справа от флажка

 

 

BS_DEFPUSHBUTTON

То же, что и BS_PUSHBUTTON, но кнопка имеет

 

толстую черную рамку. Если такая кнопка

 

находится в диалоговом окне, то она посылает

 

сообщение родительскому окну при нажатии

 

клавиши Enter, даже если она не имеет фокуса

 

ввода. Этот стиль используется для задания кнопок

 

по умолчанию

BS_GROUPBOX

Прямоугольник, в котором группируют элементы

 

управления. Он не принимает сообщения. Текст

 

этого элемента отображается в верхнем левом углу

 

прямоугольника

 

 

BS_LEFTTEXT

Этот стиль дополняет стиль флажка или

или

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

BS_RIGHTBUTTO

элемента

BS_PUSHBUTTON

Стандартная кнопка без рамки

BS_RADIOBUTTON

Переключатель с текстом справа, который может

 

находиться во включенном или выключенном

 

состоянии

BS_ICON

Элементом управления является иконка

BS_MULTILINE

Распределить текст в нескольких строках внутри

 

прямоугольника кнопки

 

 

BS_NOTIFY

Элемент управления посылает сообщения

 

BN_DBLCLK, BN_KILLFOCUS и BN_SETFOCUS

 

родительскому окну

BS_PUSHLIKE

Флажок или переключатель этого стиля ведет себя

 

подобно кнопке – приподнимается или

 

притапливается

 

 

BS_TEXT

Элемент управления является текстом

 

336

 

 

 

 

 

 

 

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

 

 

 

 

 

 

Стили

 

 

Описание

 

 

BS_RIGHT, BS_LEFT,

 

Текст выровнен соответственно по правому,

BS_STOP и BS_BOTTOM

 

левому, верхнему или нижнему краю в

 

 

прямоугольнике кнопки

 

 

BS_CENTER

 

Центрирует текст по горизонтали в

 

 

прямоугольнике кнопки

 

 

 

 

 

BS_VCENTER

 

Центрирует текст по вертикали в

 

 

прямоугольнике кнопки

 

 

 

 

 

 

 

Таблица 2.3. Список стилей окон класса "static"

 

 

 

 

 

 

Стили

Описание

 

 

 

 

SS_BLACKFRAME,

Прямоугольня

рамка

системного

цвета

SS_GRAYFRAME

соответственно

 

 

 

 

или

COLOR_WINDOWFRAME («черного» цвета

SS_WHITEFRAME

рамок окон), COLOR_BACKGROUND («серого»

 

цвета фона

экрана)

или

COLOR_WINDOW

 

(«белого» цвета рабочей области окон).

 

Внутренняя область остается незакрашенной.

 

Текст заголовка окна не используется.

 

Соответствующий

параметр

функции

 

CreateWindow указывают как NULL

 

 

 

 

SS_BLACKRECT,

Закрашенный прямоугольник

системного цвета

SS_GRAYRECT или

соответственно

COLOR

WINDOWFRAME

SS_WHITERECT

(«черного»

цвета

 

рамок

окон),

 

COLOR_BACKGROUND («серого» цвета фона

 

экрана) или COLOR_WINDOW («белого» цвета

 

рабочей области окон). Текст заголовка окна не

 

используют.

Этот

параметр

функции

 

CreateWindow указывают как NULL

 

 

 

SS_LEFT.SS_RIGHT или

В заданном прямоугольнике указанный текст

SS_CENTER

выводит функция DrawText, соответственно

 

выравнивая его по левому, правому краю или

 

центрируя и перенося слова в следующую строку.

 

Не поместившаяся часть текста не отображается.

 

Символы табуляции заменяются пробелами

 

 

SS_LEFTNOWORDWRAP

То же, что и SS_LEFT, но без переноса слов

337

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

Стили

 

Описание

 

 

 

 

 

 

 

SS_NOPREFIX

 

Этот стиль дополняет другие стили в тех случаях,

 

 

когда необходимо

отменить

 

специальную

 

 

обработку символа &. Обычно этот символ не

 

 

выводится статическими элементами управления

 

 

на экран, а следующий за ним символ

 

 

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

 

 

символа & его надо повторить 2 раза подряд)

 

 

 

 

SS_NOTIFY

 

Окно этого стиля функции родительского окна

 

 

посылает

сообщения

STN_CLICKED

и

 

 

STN_DBLCLK о нажатии или двойном щелчке

 

 

левой клавишей мыши

 

 

 

 

 

 

 

 

SS_SIMPLE

 

Выводит текст в одну строку, используя

 

 

функцию TextOut и выравнивая по левому краю.

 

 

Символы табуляции не заменяет пробелами. При

 

 

повторном

 

выводе

 

текста

 

содержимое

 

 

прямоугольника не стирается, поэтому новый

 

 

текст не должен быть короче прежнего. Обычно

 

 

комбинируют

со

стилем

SS_NOPREFIX

 

 

(используется

более

быстрая

функция

 

 

ExtTextOut)

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

Стили

Описание

 

 

 

 

 

 

 

SBS_BOTTOMALIGN

В нижней или верхней части прямоугольника,

или SBS_TOPALIGN

заданного

аргументами

вызова

функции

 

CreateWindow, создается горизонтальная полоса

 

прокрутки, высота которой равна высоте системной

 

полосы просмотра. Этот стиль используется вместе c

 

SBS_HORZ

 

 

 

 

 

 

 

SBS_HORZ

Если не указан стиль SBS_BOTTOMALIGN или

 

SBS_TOPALIGN, то позиция, высота и ширина

 

горизонтальной

полосы

прокрутки

определяются

 

аргументами х, у, nWidth и nHeight вызова функции

 

CreateWindow

 

 

 

 

 

 

 

SBS_LEFTALIGN или

В левом или правом краю прямоугольника,

SBS_RIGHTALIGN

заданного

аргументами

вызова

функции

 

CreateWindow, создается вертикальная полоса

 

прокрутки, ширина которой равна ширине

 

системной полосы просмотра. Этот стиль

 

используется вместе с SBS_VERT

 

 

 

 

 

 

 

338

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

Стили

Описание

 

 

 

 

 

 

SBS_SIZEBOX

Создается прямоугольник серого цвета. Если

 

 

установить курсор мыши внутрь прямоугольника,

 

 

нажать левую клавишу и перемещать мышь,

 

 

родительское

окно

получает

сообщения,

 

 

аналогичные сообщениям от рамки изменения

 

 

размера

 

окна.

Если

 

стили

 

 

SBS_SIZEBOXBOTTOMRIGHTALIGN

и

 

 

SBS_SIZEBOXTOPLEFTALIGN не указаны, то

 

 

прямоугольник задается аргументами х, у, nWidth и

 

 

nHeight функции Create Window

 

 

 

 

 

 

 

 

 

SBS_SIZEBOXBOTT

Аналогично

SBS_SIZEBOX, но

правый

нижний

OMRIGHTALIGN

(левый

верхний)

угол

прямоугольника

(SBS_SIZEBOXTOP-

выравнивается по правому нижнему (левому

LEFTALIGN)

верхнему) углу прямоугольника, определенного при

 

 

вызове функции Create Window, а для высоты и

 

 

ширины

элемента

управления

 

используются

 

 

системные значения. Этот стиль применяется вместе

 

 

c SBS_SIZEBOX

 

 

 

 

SBS_SIZEGRIP

Тот же самый, что и SBS_SIZEBOX, но с

 

 

поднятым краем

 

 

 

 

SBS_VERT

Если не указан стиль SBS_RIGHTALIGN или

 

 

SBS_LEFTALIGN, то позиция, высота и ширина

 

 

вертикальной

полосы

прокрутки

определяются

 

 

аргументами вызова функции Create Window

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

Стиль

 

Назначение

 

 

 

 

 

 

ES_AUTOHSCROLL

Автоматически сдвигать текст влево на 10 символов

 

 

при достижении правой границы окна ввода. В

 

 

многострочном редакторе для перехода в начало

 

 

следующей строки необходимо нажать клавишу Enter

ES_AUTOVSCROLL

Используется

в многострочном

редакторе для

 

 

автоматического сдвига текста вверх на одну строку

 

 

при достижении нижней границы окна ввода. Иначе

 

 

при достижении нижней границы будет выдан

 

 

звуковой сигнал

 

 

 

 

 

 

 

ES_LEFT

 

Выравнивать текст по левому краю окна ввода. Часто

 

 

используется для задания однострочного редактора

 

 

текста

и

комбинируется

 

со

стилем

 

 

 

 

 

ES CENTER

 

Центрировать строки по горизонтали

 

 

 

339

 

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

 

 

Стиль

Назначение

ES LOWERCASE

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

ES_MULTILINE

Многострочный редактор. Обычно комбинируют со

 

стилями ES_WANTRETURN (для использования

 

клавиши Enter с целью перехода на новую строку),

 

ES_AUTOVSCROLL (для перелистывания текста по

 

вертикали, иначе текст только сдвигается вверх при

 

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

 

сигнал), ES_AUTOHSCROLL (для перелистывания

 

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

 

переносится в начало следующей строки при

 

достижении правого края окна). Для подключения

 

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

 

стиль комбинируют со значениями WS_HSCROLL и

 

WS_VSCROLL. Функция окна многострочного

 

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

 

просмотра

 

 

ES_WANTRETURN

При нажатии на клавишу ENTER перейти в начало

 

следующей строки, иначе в диалоговых окнах

 

нажатие клавиши ENTER воспринимается как

 

нажатие кнопки по умолчанию. Стиль используется в

 

комбинации со стилем ES_MULTILINE и только в

 

 

ES_NUMBER

Разрешить ввод только цифр

ES_PASSWORD

Отображать звездочку (*) для каждого вводимого

 

символа

 

 

ES_READONLY

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

ES_RIGHT

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

ES_UPPERCASE

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

ES_NOHIDESEL

При потере фокуса ввода выделенный в окне

 

фрагмент текста отображать в инверсном цвете. Если

 

этот стиль не указан, выделение фрагмента пропадает

 

до возврата фокуса ввода

 

 

 

340

 

 

 

 

 

 

 

 

 

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

 

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

 

 

 

 

 

 

 

 

Стиль

Пояснение

 

 

 

 

 

 

LBS_NOINTEGRALHEIGH

Высота окна не обязательно кратна высоте

T

строк

 

 

 

 

 

 

LBS_NOREDRAW

Не перерисовывать

содержимое

при

 

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

 

 

 

 

LBS_DISABLENOSCROLL

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

 

неактивном состоянии (но не скрывать), если в

 

списке помещаются все строки. Без указания

 

стиля

LBS_DISABLENOSCROLL

в

 

аналогичной

ситуации вертикальная

полоса

 

просмотра пропадает. Используется, если

 

нежелательно

изменение

внешнего

вида

LBS_EXTENDEDSEL

С помощью клавиши Shift или мыши можно

 

выделять

несколько

расположенных

рядом

 

строк

 

 

 

 

 

 

LBS_HASSTRINGS

Список

родительскому

окну

посылает

 

сообщение WM_VKEYTOITEM с кодом

 

виртуальной клавиши LOWORD(wParam), с

 

номером текущей строки HIWORD (wParam) и

 

дескриптором списка lParam

 

 

 

 

LBS_MULTICOLUMN

Многоколоночный список. Число колонок

 

задают сообщением LB_SETCOLUMNWIDTH

 

 

LBS_MULTIPLESEL

С помощью клавиши Shift или мыши можно

 

выделять несколько строк в списке

 

 

 

 

LBS_NOSEL

Определяет, что окно списка содержит

 

единицы, которые могут просматриваться, но

 

не выбраны

 

 

 

 

 

LBS_NOTIFY

Сообщать о двойном щелчке мышью по

 

строке

 

 

 

 

 

 

 

 

LBS_SORT

Сортировать строки в алфавитном порядке

LBS_OWNERDRAW-

Список

строк

переменной

высоты,

VARIABLE

перерисовывается родительским окном

 

 

 

 

 

 

LBS_OWNERDRAWFIXED

Список

строк

одинаковой

высоты,

 

перерисовывается родительским окном