编辑控件样式

若要使用 CreateWindowCreateWindowEx 函数创建编辑控件,请指定 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;
}

GitHub 上的 Windows 经典示例中的例子。

常量

常数 说明
ES_AUTOHSCROLL
当用户在行尾键入一个字符时,自动将文本向右滚动 10 个字符。 当用户按下 Enter 时,控件会将所有文本向后滚动到位置 0。
ES_AUTOVSCROLL
当用户在最后一行按下 Enter 时,自动将文本向上滚动一页。
ES_CENTER
将单行或多行编辑控件中的文本居中。
ES_LEFT
文本与左边距对齐。
ES_LOWERCASE
在编辑控件中键入字符时,将所有字符转换为小写。
若要在创建控件后更改此样式,请使用 SetWindowLong
ES_MULTILINE
指定多行编辑控件。 默认值为单行编辑控件。
当多行编辑控件位于对话框中时,按 Enter 键的默认响应是激活默认按钮。 若要将 Enter 键用作回车符,请使用 ES_WANTRETURN 样式。
当多行编辑控件不在对话框中并且指定 了ES_AUTOVSCROLL 样式时,编辑控件会显示尽可能多的行,并在用户按 Enter 键时垂直滚动。 如果未指定 ES_AUTOVSCROLL,编辑控件将显示尽可能多的行,如果用户按下 Enter 键,则无法显示更多行时发出哔哔声。
如果指定 ES_AUTOHSCROLL 样式,当插入点经过控件的右边缘时,多行编辑控件会自动水平滚动。 若要启动新行,用户必须按 Enter 键。 如果未指定 ES_AUTOHSCROLL,控件会在必要时自动将单词包装到下一行的开头。 如果用户按 Enter 键,也会启动新行。 窗口大小确定 Wordwrap 的位置。 如果窗口大小更改,Wordwrapping 位置将更改,文本将重新显示。
多行编辑控件可以有滚动条。 具有滚动条的编辑控件处理其自己的滚动条消息。 请注意,没有滚动条的编辑控件会如前几段中所述滚动,并处理父窗口发送的任何滚动消息。
ES_NOHIDESEL
否定编辑控件的默认行为。 当控件失去输入焦点时,默认行为会隐藏所选内容,并在控件收到输入焦点时反转所选内容。 如果指定 ES_NOHIDESEL,即使控件没有焦点,所选文本也会反转。
ES_NUMBER
只允许将数字输入到编辑控件中。 请注意,即使设置了此设置,仍可将非数字粘贴到编辑控件中。
若要在创建控件后更改此样式,请使用 SetWindowLong
若要将输入编辑控件的文本转换为整数值,请使用 GetDlgItemInt 函数。 若要将编辑控件的文本设置为指定整数的字符串表示形式,请使用 SetDlgItemInt 函数。
ES_OEMCONVERT
转换在编辑控件中输入的文本。 文本从 Windows 字符集转换为 OEM 字符集,然后重新转换为 Windows 字符集。 当应用程序调用 CharToOem 函数将编辑控件中的 Windows 字符串转换为 OEM 字符时,这可确保字符转换正确。 对于包含将在不支持 Unicode 的文件系统上使用的文件名的编辑控件,此样式最有用。
若要在创建控件后更改此样式,请使用 SetWindowLong
ES_PASSWORD
显示编辑控件中键入的每个字符的星号 (*) 。 此样式仅对单行编辑控件有效。
若要更改显示的字符,或者设置或清除此样式,请使用 EM_SETPASSWORDCHAR 消息。
注意: 若要使用 Comctl32.dll 版本 6,请在清单中指定它。 有关清单的详细信息,请参阅 启用视觉样式
ES_READONLY
防止用户在编辑控件中键入或编辑文本。
若要在创建控件后更改此样式,请使用 EM_SETREADONLY 消息。
ES_RIGHT
将单行或多行编辑控件中的文本右对齐。
ES_UPPERCASE
在编辑控件中键入字符时,将所有字符转换为大写。
若要在创建控件后更改此样式,请使用 SetWindowLong
ES_WANTRETURN
指定当用户在对话框中将文本输入到多行编辑控件时按 Enter 键时插入回车符。 如果未指定此样式,则按 Enter 键的效果与按对话框的默认按钮的效果相同。 此样式对单行编辑控件不起作用。
若要在创建控件后更改此样式,请使用 SetWindowLong

要求

要求
标头
Winuser.h