Editar estilos de control

Para crear un control de edición mediante la función CreateWindow o CreateWindowEx , especifique la clase EDIT, las constantes de estilo de ventana adecuadas y una combinación de los siguientes estilos de control de edición. Una vez creado el control, estos estilos no se pueden modificar, excepto como se indica.

Ejemplo

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;
}

Ejemplo de Windows ejemplos clásicos en GitHub.

Constantes

Constante Descripción
ES_AUTOHSCROLL
Desplaza automáticamente el texto a la derecha por 10 caracteres cuando el usuario escribe un carácter al final de la línea. Cuando el usuario presiona la tecla ENTRAR, el control vuelve a desplazar todo el texto hasta la posición cero.
ES_AUTOVSCROLL
Desplaza automáticamente el texto hacia arriba una página cuando el usuario presiona la tecla ENTRAR en la última línea.
ES_CENTER
Centra el texto en un control de edición de una sola línea o de varias líneas.
ES_LEFT
Alinea el texto con el margen izquierdo.
ES_LOWERCASE
Convierte todos los caracteres en minúsculas a medida que se escriben en el control de edición.
Para cambiar este estilo una vez creado el control, use SetWindowLong.
ES_MULTILINE
Designa un control de edición de varias líneas. El valor predeterminado es el control de edición de una sola línea.
Cuando el control de edición de varias líneas está en un cuadro de diálogo, la respuesta predeterminada para presionar la tecla ENTRAR es activar el botón predeterminado. Para usar la tecla ENTRAR como retorno de carro, use el estilo ES_WANTRETURN .
Cuando el control de edición de varias líneas no está en un cuadro de diálogo y se especifica el estilo ES_AUTOVSCROLL , el control de edición muestra tantas líneas como sea posible y se desplaza verticalmente cuando el usuario presiona la tecla ENTRAR. Si no especifica ES_AUTOVSCROLL, el control de edición muestra tantas líneas como sea posible y suena si el usuario presiona la tecla ENTRAR cuando no se pueden mostrar más líneas.
Si especifica el estilo ES_AUTOHSCROLL , el control de edición de varias líneas se desplaza horizontalmente cuando el símbolo de intercalación va más allá del borde derecho del control. Para iniciar una nueva línea, el usuario debe presionar la tecla ENTRAR. Si no especifica ES_AUTOHSCROLL, el control ajusta automáticamente las palabras al principio de la línea siguiente cuando sea necesario. También se inicia una nueva línea si el usuario presiona la tecla ENTRAR. El tamaño de la ventana determina la posición de Wordwrap. Si cambia el tamaño de la ventana, cambia la posición de Wordwrapping y se vuelve a reproducir el texto.
Los controles de edición multilínea pueden tener barras de desplazamiento. Un control de edición con barras de desplazamiento procesa sus propios mensajes de barra de desplazamiento. Tenga en cuenta que los controles de edición sin barras de desplazamiento se desplazan como se describe en los párrafos anteriores y procesan los mensajes de desplazamiento enviados por la ventana primaria.
ES_NOHIDESEL
Niega el comportamiento predeterminado de un control de edición. El comportamiento predeterminado oculta la selección cuando el control pierde el foco de entrada e invierte la selección cuando el control recibe el foco de entrada. Si especifica ES_NOHIDESEL, el texto seleccionado se invierte, incluso si el control no tiene el foco.
ES_NUMBER
Permite que solo los dígitos se escriban en el control de edición. Tenga en cuenta que, incluso con este conjunto, todavía es posible pegar dígitos que no sean dígitos en el control de edición.
Para cambiar este estilo una vez creado el control, use SetWindowLong.
Para traducir texto escrito en el control de edición a un valor entero, use la función GetDlgItemInt . Para establecer el texto del control de edición en la representación de cadena de un entero especificado, use la función SetDlgItemInt .
ES_OEMCONVERT
Convierte el texto escrito en el control de edición. El texto se convierte del juego de caracteres de Windows en el juego de caracteres OEM y, a continuación, vuelve al juego de caracteres Windows. Esto garantiza una conversión de caracteres adecuada cuando la aplicación llama a la función CharToOem para convertir una cadena de Windows en el control de edición en caracteres OEM. Este estilo es más útil para los controles de edición que contienen nombres de archivo que se usarán en sistemas de archivos que no admiten Unicode.
Para cambiar este estilo una vez creado el control, use SetWindowLong.
ES_PASSWORD
Muestra un asterisco (*) para cada carácter escrito en el control de edición. Este estilo solo es válido para los controles de edición de una sola línea.
Para cambiar los caracteres que se muestran o establecer o borrar este estilo, use el mensaje EM_SETPASSWORDCHAR .
[! Nota]
Para usar Comctl32.dll versión 6, especifíquelo en un manifiesto. Para obtener más información sobre los manifiestos, consulte Habilitación de estilos visuales.

ES_READONLY
Impide que el usuario escriba o edite texto en el control de edición.
Para cambiar este estilo una vez creado el control, use el mensaje EM_SETREADONLY .
ES_RIGHT
Alinea el texto a la derecha en un control de edición de una sola línea o de varias líneas.
ES_UPPERCASE
Convierte todos los caracteres en mayúsculas a medida que se escriben en el control de edición.
Para cambiar este estilo una vez creado el control, use SetWindowLong.
ES_WANTRETURN
Especifica que se inserta un retorno de carro cuando el usuario presiona la tecla ENTRAR mientras escribe texto en un control de edición de varias líneas en un cuadro de diálogo. Si no especifica este estilo, presionar la tecla ENTRAR tiene el mismo efecto que presionar el botón de inserción predeterminado del cuadro de diálogo. Este estilo no tiene ningún efecto en un control de edición de una sola línea.
Para cambiar este estilo una vez creado el control, use SetWindowLong.

Requisitos

Requisito Value
Encabezado
Winuser.h