Упражнение 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 тоже осуществляет переход на новую строку.