? Стиль BS_B0TT0M выравнивает текст по нижнему краю кнопки.
? Стиль BS_CENTER выравнивает текст по горизонтальному центру кнопки.
? Стиль BS_DEFPUSHBUTTON определяет кнопку, как используемую по умолчанию на диалоговой форме. Когда пользователь нажимает клавишу ENTER, кнопка срабатывает, даже если она не имеет фокуса ввода.
? Стиль BSJ-EFT выравнивает текст по левому краю кнопки.
? Стиль BS_N0TIFY определяет кнопку которая посылает в родительское окно сообщения BNKILLFOCUS и BNSETFOCUS. Также генерируется сообщение BNCLICKED.
? Стиль BS_OWNERDRAW создает кнопку, поверхность которой перерисовывается программным путем. Родительское окно получает от кнопки сообщение WM_ MEASUREITEM при создании кнопки и сообщение WM_DRAWITEM при перерисовке.
? Стиль BS_PUSHBUTTON создает кнопку, которая герерирует сообщение WMCOMMAND при нажатии на нее.
? Стиль BS_RIGHT выравнивает текст по правому краю кнопки.
? Стиль BS_T0P выравнивает текст по верхней стороне кнопки.
? Стиль BS_VCENTER вертикально центрует текст на кнопке.
В следующем списке рассматриваются стили для создаваемых флажков.
? Стиль BS_3STATE создает флажок, состояние которого не может быть изменено пользователем. Подобный флажок используется для индикации состояний.
? Стиль BS_AUT03STATE создает флажок с тремя состояниями. Он может быть включен, выключен или недоступен. Состояния меняются при каждом щелчке мышью.
? Стиль BS_AUTOCHECKBOX создает флажок, в котором каждый щелчок взводит или сбрасывает его.
? Стиль BS_CHECKBOX создает пустой флажок, который не взводится при щелчке.
? Стиль BSJ-EFT отвечает за выравнивание текста по левому краю.
? Стиль BS_PUSHLIKE создает флажок, который нажимается как обыкновенная кнопка.
? Стиль BS_RIGHT отвечает за выравнивание текста по правому краю.
? Стиль BS_RIGHTBUTTON располагает флажок справа от поясняющей надписи.
Набор стилей для радиокнопок приведен в заключительном списке раздела.
? Стиль BSAUTORAD10BUTT0N создает радиокнопку, которая при выборе ее пользователем сбрасывает флаг у другой кнопки в этой же группе.
? Стиль BSJ-EFT отвечает за выравнивание текста в левую сторону.
? Стиль BS_RADI0BUTT0N создает пустую радиокнопку.
? Стиль BS_RIGHT отвечает за выравнивание текста в правую сторону.
? Стиль BS_RIGHTBUTTON создает радиокнопку, которая располагается справа от поясняющего текста.
Упражнение 4.3 (продолжение)
6. Чтобы получить представление о том, какое большое влияние может оказывать сочетание стилей даже на такие простые элементы, как кнопки, нужно немного изменить код проекта. Нужно переписать последний вызов функции CreateWindowEx следующим образом:
CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, TEXT (В«BUTTONВ»), TEXT (В«ButtonВ»), BS_GROUPBOXВ | WS_VISIBLE | WS_CHILD, 2, 2, 235, 262, hWnd, (HMENU)213, g_hInst, NULL);
Если теперь запустить проект, то вместо кнопки будет отображен компонент, предназначенный для визуального выделения группы элементов. 7. Теперь следует изменить код этой же функции еще раз, добавив в нее еще один стиль, как показано ниже:
CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, TEXT (В«BUTTONВ»), TEXT (В«ButtonВ»), BS_GROUPBOXВ |
WS_VISIBLE | WS_CHILD | WS_OVERLAPPED, 2, 2, 235, 262, hWnd, (HMENU)213, g_hInst,
NULL);
После запуска проекта РЅР° заднем плане будет размещено полноценное РѕРєРЅРѕ СЃ заголовком, которое можно перемещать РїРѕ экрану. Ртот пример хорошо демонстрирует, что стиль BS_GR0UPB0X сам РїРѕ себе РЅРµ делает это РѕРєРЅРѕ контейнером компонентов, которые геометрически размещены внутри его границ. EDIT
Для создания поля ввода используется достаточно большой набор стилей, которые приведены в следующем списке.
? Стиль ES_AUT0HSCR0LL позволяет автоматически прокручивать текст вправо на десять символов после того, как пользователь дошел до конца строки. После нажатия клавиши ENTER текстовый курсор возвращается в начальную позицию.
? Стиль ES_AUT0VSCR0LL определяет прокручивание текста вниз на одну страницу, когда пользователь на последней строке текста нажимает клавишу ENTER.
? Стиль ES_CENTER задает выравнивание текста по центру для многострочного поля ввода.
? Стиль ESJ.EFT задает выравнивание влево.
? Стиль ES_LOWERCASE указывает, что все вводимые символы будут переводиться в нижний регистр.
? Стиль ES_MULTILINE создает многострочный текстовый редактор. По умолчанию элемент EDIT является однострочным полем ввода. Когда многострочный редактор находится в диалоговом окне, окно перехватывает нажатие клавиши ENTER, и для того чтобы компонент EDIT принимал это событие первым, надо использовать стиль ES_WANTRETURN. Когда многострочный редактор располагается не в диалоговом окне и для него задан стиль ES_AUTOVSCROLL, то редактор показывает максимально возможное количество строк, а прокручивать текст будет только при необходимости. Если стиль ES_AUTOVSCROLL не задан, то по достижении последней строки звучит предупредительный звуковой сигнал, а прокрутки не происходит. Когда задан стиль ES_AUTOHSCROLL, многострочный редактор включает горизонтальное прокручивание при достижении правого края. При выключенном стиле ES_AUTOHSCROLL при достижении правой границы происходит автоматический перенос на следующую строку по границе ближнего слова. Клавиша ENTER тоже осуществляет переход на новую строку.