Estilos de clase window

Los estilos de clase definen elementos adicionales de la clase window. Se pueden combinar dos o más estilos mediante el operador OR bit a bit (|). Para asignar un estilo a una clase de ventana, asigne el estilo al miembro style de la estructura WNDCLASSEX .

Ejemplo

    WNDCLASS wc = {};
    wc.lpfnWndProc = s_DropDownWndProc;
    wc.cbWndExtra = sizeof(CTipACDialog *);
    wc.hInstance = g_hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.style = CS_SAVEBITS | CS_DROPSHADOW;
    wc.lpszClassName = s_wzClassName;
    RegisterClass(&wc);

Ejemplo tomado del directorio Windows Classic Samples de GitHub.

Constantes

A continuación se muestran los estilos de clase de ventana.

Constante o valor Descripción
CS_BYTEALIGNCLIENT
0x1000
Alinea el área de cliente de la ventana en un límite de bytes (en la dirección x). Este estilo afecta al ancho de la ventana y su colocación horizontal en la pantalla.
CS_BYTEALIGNWINDOW
0x2000
Alinea la ventana en un límite de bytes (en la dirección x). Este estilo afecta al ancho de la ventana y su colocación horizontal en la pantalla.
CS_CLASSDC
0x0040
Asigna un contexto de dispositivo que compartirán todas las ventanas de la clase . Dado que las clases de ventana son específicas del proceso, es posible que varios subprocesos de una aplicación creen una ventana de la misma clase. También es posible que los subprocesos intenten usar simultáneamente el contexto del dispositivo. Cuando esto sucede, el sistema solo permite que un subproceso finalice correctamente su operación de dibujo.
CS_DBLCLKS
0x0008
Envía un mensaje de doble clic al procedimiento de ventana cuando el usuario hace doble clic en el mouse mientras el cursor está dentro de una ventana que pertenece a la clase .
CS_DROPSHADOW
0x00020000
Habilita el efecto de sombra de colocación en una ventana. El efecto está activado y desactivado a través de SPI_SETDROPSHADOW. Normalmente, esto está habilitado para ventanas pequeñas y de corta duración, como menús, para resaltar su relación de orden Z con otras ventanas. Windows creado a partir de una clase con este estilo debe ser ventanas de nivel superior; es posible que no sean ventanas secundarias.
CS_GLOBALCLASS
0x4000
Indica que la clase window es una clase global de aplicación. Para obtener más información, vea la sección "Clases globales de aplicación" de Acerca de las clases de ventana.
CS_HREDRAW
0x0002
Vuelve a dibujar toda la ventana si un ajuste de movimiento o tamaño cambia el ancho del área de cliente.
CS_NOCLOSE
0x0200
Deshabilita Cerrar en el menú de la ventana.
CS_OWNDC
0x0020
Asigna un contexto de dispositivo único para cada ventana de la clase .
CS_PARENTDC
0x0080
Establece el rectángulo de recorte de la ventana secundaria en el de la ventana primaria para que el elemento secundario pueda dibujar en el elemento primario. Una ventana con el bit de estilo CS_PARENTDC recibe un contexto de dispositivo normal de la memoria caché del sistema de contextos de dispositivo. No proporciona al elemento secundario la configuración del contexto del dispositivo o del dispositivo primario. Especificar CS_PARENTDC mejora el rendimiento de una aplicación.
CS_SAVEBITS
0x0800
Guarda, como mapa de bits, la parte de la imagen de pantalla oculta por una ventana de esta clase. Cuando se quita la ventana, el sistema usa el mapa de bits guardado para restaurar la imagen de pantalla, incluidas otras ventanas ocultas. Por lo tanto, el sistema no envía mensajes WM_PAINT a ventanas ocultas si no se ha descartado la memoria usada por el mapa de bits y si otras acciones de pantalla no han invalidado la imagen almacenada.
Este estilo es útil para ventanas pequeñas (por ejemplo, menús o cuadros de diálogo) que se muestran brevemente y luego se quitan antes de que se produzca otra actividad de pantalla. Este estilo aumenta el tiempo necesario para mostrar la ventana, ya que el sistema debe asignar primero memoria para almacenar el mapa de bits.
CS_VREDRAW
0x0001
Vuelve a dibujar toda la ventana si un ajuste de movimiento o tamaño cambia el alto del área de cliente.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winuser.h (incluye Windows.h)