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 tomado del directorio Windows Classic Samples de GitHub.

Constantes

Constante Descripción
ES_AUTOHSCROLL
Desplaza el texto automáticamente 10 caracteres hacia la derecha cuando el usuario escribe un carácter al final de la línea. Cuando el usuario pulsa la tecla ENTRAR, el control desplaza todo el texto hasta la posición 0.
ES_AUTOVSCROLL
Desplaza el texto automáticamente hacia arriba una página cuando el usuario pulsa ENTRAR en la última línea.
ES_CENTER
Centra el texto de 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
Pasa todos los caracteres a minúsculas cuando 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 pite si el usuario presiona la tecla ENTRAR cuando no se pueden mostrar más líneas.
Si especifica el estilo de ES_AUTOHSCROLL , el control de edición de varias líneas se desplaza horizontalmente cuando el símbolo de intercalación supera el 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 del wordwrap. Si cambia el tamaño de la ventana, cambia la posición de Wordwrapping y se vuelve a mostrar 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 se escriban solo dígitos en el control de edición. Tenga en cuenta que, incluso con este conjunto, todavía es posible pegar no 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 al juego de caracteres OEM y, a continuación, vuelve al juego de caracteres de Windows. Esto garantiza la 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 muy ú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íquela en un manifiesto. Para obtener más información sobre los manifiestos, vea 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 a la derecha el texto de un control de edición de una sola línea o de varias líneas.
ES_UPPERCASE
Pasa todos los caracteres a mayúsculas cuando 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