На этом шаге мы рассмотрим флаги стиля.
При создании элемента управления вы можете определить для него различные флаги стиля. Некоторые флаги стиля являются переносимыми, в то время как другие существуют только на определенных платформах. Однако на всех платформах можно определить любой флаг - неподдерживаемые флаги будут просто игнорироваться. Таким образом, можно создать переносимые приложения, которые в то же время будут использовать преимущества каждой платформы. Значения флагов приведены в таблице 1.
Идентификатор флага | Значение |
---|---|
wsf_Disabled | Изначально элемент управления будет заблокирован |
wsf_Checked | Изначально флажок будет находиться в отмеченном состоянии |
wsf_Default | Флаг для заданной по умолчанию кнопки в диалоговом окне |
wsf_Invisible | Создать скрытый элемент управления |
wsf_Group | Флаг для начала создания новой группы элементов управления |
wsf_TabStop | Позволить переход по табуляции к элементу управления |
wsf_ReadOnly | Поле редактирования только для чтения |
wsf_MultiLine | Позволить многострочные поля редактирования |
wsf_MultiSelect | Позволить списки множественного выбора |
wsf_Mu1tiCo1umn | Определить несколько колонок в списке |
wsf_A1ignLeft | Выравнивание текста по левому краю |
wsf_AlignCenter | Выравнивание текста по центру |
wsf_AlignRight | Выравнивание текста по правому краю |
wsf_LeftText | Определяет, что флажок или переключатель должен иметь текст с левой стороны |
wsf_OwnerDraw | Определяет "собственное рисование" (ownerdrawing) для элемента управления, в этом случае программист должен выполнять все операции рисования для элемента управления |
wsf_VScroll | Определяет, что многострочное поле редактирования или окно списка при необходимости будет иметь вертикальную полосу прокрутки |
wsf_HScroll | Определяет, что многострочное поле редактирования или окно списка при необходимости будет иметь горизонтальную полосу прокрутки |
wsf_NoBorder | Определяет, что элемент управления не должен иметь границу |
wsf_Simple | Определяет простой прямоугольник и отображает одиночную текстовую строку, выравненную по левой границе в прямоугольнике. Эта строка не может быть сокращена или изменена |
wsf_NoWrap | Определяет простой прямоугольник и отображает данный текст, выравненный по левой границе в прямоугольнике. Позиции табуляции расширены, но слова не переносятся автоматически на другую строку. Текст, который выходит за пределы прямоугольника, отсекается |
wsf_NoPrefix | Предотвращает интерпретацию символов & в тексте элемента управления как акселераторов, обычно префиксный символ & используется для обозначения того, что следующий за ним символ является акселератором (такой префиксный символ & не отображается (удаляется), а последующий за ним символ отображается подчеркнутым и может быть использован как акселератор). Этот стиль статического элемента управления может быть применен к любым из определенных статических элементов управления. Часто используется, когда имена файлов или другие строки, которые могут содержать символ &, необходимо отобразить в статическом элементе управления в диалоговом окне |
wsf_Uppercase | Преобразовывает все символы к верхнему регистру по мере того, как они появляются в поле редактирования |
wsf_Lowercase | Преобразовывает все символы к нижнему регистру по мере того, как они появляются в поле редактирования |
wsf_Password | Отображает все символы звездочками (*) по мере того, как они появляются в поле редактирования |
wsf_AutoVScroll | Автоматически прокручивает текст вверх, когда пользователь нажимает клавишу <Enter> в конце последней строки |
wsf_AutoHScroll | Автоматически прокручивает текст вправо на 10 символов, когда пользователь печатает символ в конце строки. Если нажать клавишу <Enter>, элемент управления прокручивает весь текст назад, в нулевую позицию |
wsf_NoHideSel | Не разрешает поведение по умолчанию для поля редактирования. По умолчанию выбранный подтекст не подсвечивается, когда элемент управления теряет фокус ввода, и подсвечивается, когда элемент управления получает фокус ввода |
wsf_OEMConvert | Преобразовывает текст, введенный в поле редактирования, из набора символов Windows в набор символов OEM и обратно. Этот флаг гарантирует необходимое символьное преобразование, когда приложение вызывает функцию AnsiToOem для преобразования строки Windows в символы OEM. Этот стиль более всего полезен для элементов редактирования, которые содержат имена файлов |
wsf_WantReturn | Определяет, что при нажатии клавиши <Enter> в многострочном поле редактирования в текст будет вставлен символ возврата каретки. Если этот стиль не определен, то нажатие клавиши <Enter> вызовет те же действия, что и нажатие заданной по умолчанию командной кнопки диалогового окна. Этот стиль никак не влияет на поведение однострочных полей редактирования |
wsf_3State | Создает кнопку, которая, по сути, является флажком, за исключением того, что она может быть как заблокирована, так и отмечена. Заблокированное состояние используется, чтобы показать, что состояние флажка метки не определено |
wsf_Auto | Группы автоматических переключателей или автоматических флажков |
wsf_Auto3State | Автоматический флажок с тремя состояниями |
wsf_NoNotify | Отказ от уведомления родительского окна входным сообщением |
wsf_Sort | Сортирует строки в списке в алфавитном порядке |
wsf_NoReDraw | Определяет, что вид списка не обновляется при сделанных изменениях. Этот стиль можно изменить в любое время пользуя константы lbox_Suspend и lbox_ReSume |
wsf_OwnerDrawVariable | Определяет, что владелец списка ответствен за изображение его содержимого и что элементы в списке различаются по высоте. Окно владельца получает сообщение e_OwnerMeasureItem для каждого элемента при создании списка, и сообщение e_OwnerDrawItem всякий раз, когда изменяется внешний вид списка |
wsf_HasStrings | Определяет, что список содержит элементы, состоящие из строк. По умолчанию, все окна списков, кроме списков со стилем wsf_OwnerDraw, имеют этот стиль. Приложение может создать wsf_OwnerDraw-список с этим стилем или без него |
wsf_UseTabStops | Позволяет окну списка распознавать и расширять символы табуляции при отображении его строк. Заданные по умолчанию позиции табуляции - это 32 базовые диалоговые единицы |
wsf_NoIntegralHeight | Определяет, что размер окна списка - тот размер, который указан приложением при создании списка. Обычно Windows изменяет размеры списка так, чтобы элементы отображались целиком |
wsf_WantKeyboardInput | Определяет, что родительское окно списка получает сообщения WM_VKEYTOITEM или WM_CHARTOITEM всякий раз, когда пользователь нажимает клавишу и список имеет фокус ввода, что позволяет приложению выполнять специальную обработку ввода с клавиатуры. Если список имеет стиль LBS_HASSTRINGS, то он может получать сообщения WM_VKEYTOITEM, но не WM_CHARTOITEM. Если список не имеет стиля LBS_HASSTRINGS, он может получать сообщения WM_CHARTOITEM, но не WM_VKEYTOITEM |
wsf_ExtendedSel | Разрешает множественный выбор элементов при помощи клавиши <Shift> и мыши или специальных комбинаций клавиш |
wsf_DisableNoScroll | Отображает заблокированную вертикальную полосу прокрутки для списка, когда список содержит недостаточное для прокрутки количество элементов. Если этот стиль не определен, то полоса прокрутки будет скрыта, когда список содержит недостаточное для прокрутки количество элементов |
wsf_BlackRect | Устанавливает заполнение wc_Text цветом, используемым для изображения рамки окна. В заданной по умолчанию схеме цветов Windows - это черный цвет |
wsf_GrayRect | Устанавливает заполнение wc_Text цветом, используемым для изображения фона экрана. В заданной по умолчанию схеме цветов Windows - это серый цвет |
ws_WhiteRect | Устанавливает заполнение wc_Text цветом, используемым для изображения фона окна. В заданной по умолчанию схеме цветов Windows - это белый цвет |
wsf_BlackFrame | Определяет wc_Text с рамкой, нарисованной тем же цветом, что и рамки окна. В заданной по умолчанию схеме цветов Windows - это черный цвет |
wsf_GrayFrame | Определяет wc_Text с рамкой, нарисованной тем же цветом, что и фон экрана (рабочий стол). В заданной по умолчанию схеме цветов Windows - это серый цвет |
wsf_WhiteFrame | Определяет поле с рамкой, нарисованной тем же цветом, что и фон окна. В заданной по умолчанию схеме цветов Windows - это белый цвет |
На следующем шаге мы рассмотрим события от элементов управления.