Поделиться через


Изменение стилей элементов управления

Чтобы создать элемент управления редактированием с помощью функции CreateWindow или CreateWindowEx , укажите класс EDIT, соответствующие константы стиля окна и сочетание следующих стилей элементов управления редактированием. После создания элемента управления эти стили нельзя изменить, кроме как указано.

Пример

LRESULT MsgCreate(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
{
    lparam;
    wparam;
    uMessage;

    // Create Edit control for typing to be sent to server
    if (NULL == (hOutWnd = CreateWindow("EDIT",
                           NULL,
                           WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | 
                           ES_MULTILINE | ES_AUTOVSCROLL,
                           0,0,0,0,
                           hwnd,
                           (HMENU) ID_OUTBOX,
                           (HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
                           NULL)))
        return FALSE;
    return TRUE;
}

Пример из классических примеров Windows на сайте GitHub.

Константы

Константа Описание
ES_AUTOHSCROLL
Автоматически прокручивает текст вправо на 10 символов, когда пользователь вводит символ в конце строки. Когда пользователь нажимает клавишу ВВОД, элемент управления прокручивает весь текст обратно до нулевой позиции.
ES_AUTOVSCROLL
Автоматически прокручивает текст на одну страницу вверх, когда пользователь нажимает клавишу ВВОД в последней строке.
ES_CENTER
Центрирует текст в однострочном или многострочном элементе управления редактированием.
ES_LEFT
Выравнивает текст по левому краю.
ES_LOWERCASE
Преобразует все символы в нижний регистр по мере их ввода в элементе управления редактированием.
Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.
ES_MULTILINE
Обозначает многостроковый элемент управления редактированием. По умолчанию используется однострочный элемент управления редактированием.
Если элемент управления многостроковым редактированием находится в диалоговом окне, по умолчанию при нажатии клавиши ВВОД используется активация кнопки по умолчанию. Чтобы использовать клавишу ВВОД в качестве возврата каретки, используйте стиль ES_WANTRETURN .
Если многострочный элемент управления редактированием не находится в диалоговом окне и указан стиль ES_AUTOVSCROLL , элемент управления редактированием отображает как можно больше строк и прокручивается по вертикали, когда пользователь нажимает клавишу ВВОД. Если не указать ES_AUTOVSCROLL, элемент управления "Редактирование" отображает как можно больше строк и вызывает звуковой сигнал, если пользователь нажимает клавишу ВВОД, когда больше строк не отображается.
Если указать стиль ES_AUTOHSCROLL , элемент управления многострокового редактирования автоматически прокручивается по горизонтали, когда курсор проходит мимо правого края элемента управления. Чтобы начать новую строку, пользователь должен нажать клавишу ВВОД. Если не указать ES_AUTOHSCROLL, элемент управления при необходимости автоматически переносит слова в начало следующей строки. Новая строка также запускается, если пользователь нажимает клавишу ВВОД. Размер окна определяет положение wordwrap. Если размер окна меняется, позиция wordwrapping меняется и текст перерисовывается.
Многостроочные элементы управления редактированием могут иметь полосы прокрутки. Элемент управления редактированием с полосами прокрутки обрабатывает собственные сообщения полосы прокрутки. Обратите внимание, что элементы управления редактирования без полос прокрутки прокручиваются, как описано в предыдущих абзацах, и обрабатывают все сообщения прокрутки, отправленные родительским окном.
ES_NOHIDESEL
Отменяет поведение по умолчанию для элемента управления редактированием. Поведение по умолчанию скрывает выделение, когда элемент управления теряет фокус ввода, и инвертирует выделение, когда элемент управления получает фокус ввода. Если указать ES_NOHIDESEL, выделенный текст будет инвертирован, даже если элемент управления не имеет фокуса.
ES_NUMBER
Позволяет вводить в элемент управления редактированием только цифры. Обратите внимание, что даже при использовании этого набора в элемент управления редактированием по-прежнему можно вставлять незначные цифры.
Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.
Чтобы перевести текст, введенный в элемент управления редактированием, в целочисленное значение, используйте функцию GetDlgItemInt . Чтобы задать для текста элемента управления редактированием строковое представление указанного целого числа, используйте функцию SetDlgItemInt .
ES_OEMCONVERT
Преобразует текст, введенный в элементе управления редактированием. Текст преобразуется из набора символов Windows в набор символов OEM, а затем обратно в набор символов Windows. Это обеспечивает правильное преобразование символов, когда приложение вызывает функцию CharToOem для преобразования строки Windows в элементе управления редактированием в символы OEM. Этот стиль наиболее полезен для элементов управления редактированием, содержащих имена файлов, которые будут использоваться в файловой системе, не поддерживающей Юникод.
Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.
ES_PASSWORD
Отображает звездочку (*) для каждого символа, введенного в элементе управления редактированием. Этот стиль действителен только для однострочных элементов управления редактированием.
Чтобы изменить отображаемые символы, задать или очистить этот стиль, используйте сообщение EM_SETPASSWORDCHAR .
Примечание: Чтобы использовать Comctl32.dll версии 6, укажите его в манифесте. Дополнительные сведения о манифестах см. в разделе Включение визуальных стилей.
ES_READONLY
Запрещает пользователю вводить или изменять текст в элементе управления редактированием.
Чтобы изменить этот стиль после создания элемента управления, используйте сообщение EM_SETREADONLY .
ES_RIGHT
Выравнивает текст по правому краю в однострочном или многострочном элементе управления редактированием.
ES_UPPERCASE
Преобразует все символы в верхний регистр по мере их ввода в элементе управления редактированием.
Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.
ES_WANTRETURN
Указывает, что возврат каретки вставляется, когда пользователь нажимает клавишу ВВОД при вводе текста в элемент управления многострочного редактирования в диалоговом окне. Если этот стиль не указан, нажатие клавиши ВВОД будет таким же эффектом, как и нажатие кнопки нажатия кнопки нажатия по умолчанию в диалоговом окне. Этот стиль не влияет на однострочный элемент управления редактированием.
Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.

Требования

Требование Значение
Заголовок
Winuser.h