Cómo distinguir WS_POPUP, WS_OVERLAPPED y WS_CHILD

Cómo distinguir WS_POPUP, WS_OVERLAPPED y WS_CHILD

Reproducido gwzz1228  Último mensaje número 13625 2012-07-25 11:58:47 lectura   colección

Desplegar

Además de las clases de ventana, hay cientos de miles de estilos de ventana para que los usuarios especifiquen el dibujo y el comportamiento de la ventana. Entre ellos, hay 3 estilos más importantes para crear los 3 tipos de ventana más básicos correspondientes: ventanas superpuestas, ventanas emergentes y subventanas.
■ Ventana superpuesta (ventana superpuesta), con todas las características de la ventana principal de la aplicación. Su área no cliente incluye un marco retráctil, barra de menú, barra de título y botones para minimizar y maximizar.
■ Ventana emergente (ventana emergente), con todas las características de un cuadro de mensaje o cuadro de diálogo. Su área no cliente incluye un marco de tamaño fijo y una barra de título.

■ La ventana secundaria (ventana secundaria) tiene todas las características similares al control de botones. No tiene área que no sea de cliente, y el proceso de la ventana es responsable de dibujar cada parte de la ventana.

///

WS_POPUP WS_OVERLAPPED WS_CHILD

  Ventanas superpuestas

Una ventana superpuesta es una ventana de nivel superior que tiene una barra de título, borde y área de cliente; está destinado a servir como la ventana principal de una aplicación. También puede tener un menú de ventana, minimizar y maximizar botones y barras de desplazamiento. Una ventana superpuesta utilizada como ventana principal generalmente incluye todos estos componentes.

  Al especificar el estilo WS_OVERLAPPED o WS_OVERLAPPEDWINDOW en la función CreateWindowEx, una aplicación crea una ventana superpuesta. Si usa el estilo WS_OVERLAPPED, la ventana tiene una barra de título y un borde. Si usa el estilo WS_OVERLAPPEDWINDOW, la ventana tiene una barra de título, borde de tamaño, menú de ventana y botones para minimizar y maximizar.

Ventanas emergentes

  Las ventanas emergentes son ventanas de nivel superior y están conectadas a la lista de ventanas secundarias de la ventana del escritorio. Las aplicaciones suelen utilizar ventanas emergentes para cuadros de diálogo. La principal diferencia entre las ventanas emergentes y superpuestas es que las ventanas emergentes no necesitan tener subtítulos y las ventanas superpuestas deben tener subtítulos. Cuando una ventana emergente no tiene un título, se puede crear sin un borde. Las ventanas emergentes pueden tener otras ventanas de nivel superior o ser propiedad de otras ventanas de nivel superior o de ambas. Todas las ventanas emergentes tienen el estilo WS_CLIPSIBLINGS, incluso si no se especificó. Las ventanas emergentes no se deben crear con el valor CW_USEDEFAULT para la posición o el tamaño de la ventana. Las ventanas emergentes que usan CW_USEDEFAULT existirán pero no tendrán tamaño ni posición, o ambas. Las ventanas superpuestas generalmente están reservadas para su aplicación ' s ventana principal y, de hecho, a veces se llaman ventanas principales o ventanas de marco. Las ventanas emergentes generalmente se utilizan para comunicarse con el usuario en forma de cuadros de diálogo y cuadros de mensaje.

  Una ventana emergente es un tipo especial de ventana superpuesta que se utiliza para cuadros de diálogo, cuadros de mensaje y otras ventanas temporales que aparecen fuera de la ventana principal de una aplicación. Las barras de título son opcionales para ventanas emergentes; de lo contrario, las ventanas emergentes son las mismas que las ventanas superpuestas del estilo WS_OVERLAPPED.

  Puede crear una ventana emergente especificando el estilo WS_POPUP en CreateWindowEx. Para incluir una barra de título, especifique el estilo WS_CAPTION. Use el estilo WS_POPUPWINDOW para crear una ventana emergente que tenga un borde y un menú de ventana. El estilo WS_CAPTION debe combinarse con el estilo WS_POPUPWINDOW para que el menú de la ventana sea visible.

  Ventanas infantiles

Las ventanas secundarias deben tener una ventana principal y están confinadas al área del cliente de sus padres. Esta es la principal distinción entre ventanas secundarias y ventanas superpuestas y emergentes. Los padres de ventanas secundarias pueden ser ventanas de nivel superior u otras ventanas secundarias. Las ventanas secundarias se colocan desde la esquina superior izquierda de la ventana principal y no desde la esquina superior izquierda de la pantalla como lo son las ventanas de nivel superior. Las ventanas secundarias se recortan en el área del cliente de sus padres. Los controles en un cuadro de diálogo son ventanas secundarias cuyo padre es el cuadro de diálogo. Las ventanas secundarias no deben crearse con el valor CW_USEDEFAULT para la posición o el tamaño de la ventana. Las ventanas secundarias que usan CW_USEDEFAULT existirán pero no tendrán tamaño ni posición, ni ambas.

  Una ventana secundaria tiene el estilo WS_CHILD y está confinada al área del cliente de su ventana principal. Una aplicación generalmente usa ventanas secundarias para dividir el área del cliente de una ventana principal en áreas funcionales. Puede crear una ventana secundaria especificando el estilo WS_CHILD en la función CreateWindowEx.

  Una ventana secundaria debe tener una ventana principal. La ventana principal puede ser una ventana superpuesta, una ventana emergente o incluso otra ventana secundaria. Usted especifica la ventana principal cuando llama a CreateWindowEx. Si especifica el estilo WS_CHILD en CreateWindowEx pero no especifica una ventana principal, el sistema no crea la ventana.

  Una ventana secundaria tiene un área de cliente pero no otras características, a menos que se soliciten explícitamente. Una aplicación puede solicitar una barra de título, un menú de ventana, minimizar y maximizar botones, un borde y barras de desplazamiento para una ventana secundaria, pero una ventana secundaria no puede tener un menú. Si la aplicación especifica un controlador de menú, ya sea cuando registra la clase de ventana secundaria o crea la ventana secundaria, se ignora el controlador de menú. Si no se especifica ningún estilo de borde, el sistema crea una ventana sin bordes. Una aplicación puede usar ventanas secundarias sin bordes para dividir el área del cliente de una ventana principal mientras mantiene las divisiones invisibles para el usuario.

 

A continuación se encuentra Google Translate, jaja. . .

 

//
WS_POPUP WS_OVERLAPPED WS_CHILD
  ventanas superpuestas
  Una ventana superpuesta es una ventana de nivel superior con una barra de título, borde y área de cliente, su propósito es servir como la ventana principal de una aplicación. También puede tener un menú de ventana, minimizar y maximizar botones y barras de desplazamiento. El uso de ventanas superpuestas como la ventana principal generalmente incluye todos estos componentes.
  A través del estilo WS_OVERLAPPED o WS_OVERLAPPEDWINDOW especificado en la función CreateWindowEx, una aplicación crea una ventana superpuesta. Si usa el estilo WS_OVERLAPPED, la ventana tiene una barra de título y un borde. Si usa el estilo WS_OVERLAPPEDWINDOW, la ventana tiene una barra de título, tamaño de borde, menú de ventana y botones para minimizar y maximizar.
  Ventanas emergentes Las ventanas
  emergentes son ventanas de nivel superior y una lista de ventanas secundarias conectadas a la ventana del escritorio. Las aplicaciones suelen utilizar cuadros de diálogo emergentes. La principal diferencia entre las ventanas emergentes y superpuestas es que las ventanas emergentes no necesitan tener títulos y las ventanas superpuestas deben tener títulos. Cuando una ventana emergente no tiene título, se puede crear sin bordes. Las ventanas emergentes pueden tener otras ventanas de nivel superior o ser propiedad de otras ventanas de nivel superior o de ambas. Todas las ventanas emergentes tienen el estilo WS_CLIPSIBLINGS, incluso si no está especificado. Las ventanas emergentes no se pueden crear con el valor CW_USEDEFAULT independientemente de la ubicación o el tamaño de la ventana. Existirá una ventana emergente, usando CW_USEDEFAULT, pero no tendrá ningún tamaño o ninguna habilidad o ambas. Las ventanas superpuestas generalmente están reservadas para la ventana principal de la aplicación y, de hecho, a veces se las denomina ventana principal o ventana de marco. Las ventanas emergentes generalmente se utilizan en forma de cuadros de diálogo y cuadros de mensaje con el usuario.
  Una ventana emergente es un tipo especial de cuadro de diálogo que se superpone a ventanas, uso de cuadros de mensaje y ventanas temporales que aparecen en la ventana principal de otras aplicaciones externas. Se selecciona la ventana emergente de la barra de título; de lo contrario, la ventana emergente tiene el mismo estilo WS_OVERLAPPED que la ventana solapada.
Puede crear una ventana emergente especificando el estilo CreateWindowEx WS_POPUP. Para incluir una barra de título, especifique el estilo WS_CAPTION. Use el estilo WS_POPUPWINDOW para crear una ventana emergente con un borde y un menú de ventana. El estilo WS_CAPTION debe combinarse con el estilo WS_POPUPWINDOW para que sea visible en el menú de la ventana.
  Ventana secundaria La ventana
  secundaria debe tener una ventana principal y está limitada al área del cliente de su empresa matriz. Esta es la principal diferencia entre las ventanas secundarias y las ventanas superpuestas y emergentes. Los padres de las ventanas secundarias pueden tener ventanas de nivel superior u otras ventanas secundarias. La posición de las ventanas secundarias es desde la esquina superior izquierda de su ventana principal, no desde la capa superior, ya que el lado izquierdo de la pantalla es la ventana superior. La ventana del niño se encuentra entre el área de clientes de sus padres. En una ventana secundaria de un control en un cuadro de diálogo, su compañía matriz es el cuadro de diálogo. La creación de la ventana secundaria no puede tener ningún valor de posición o tamaño de ventana CW_USEDEFAULT. Las ventanas secundarias existirán usando CW_USEDEFAULT, pero no tendrán ningún tamaño, posición o ambas.
  Hay un estilo WS_CHILD de ventana secundaria y está limitado al área del cliente de su ventana principal. Las aplicaciones suelen utilizar el área funcional de la ventana secundaria para dividirse en un área cliente de la ventana principal. Puede crear una ventana secundaria de estilo WS_CHILD especificando la función CreateWindowEx.
  Una ventana secundaria debe tener una ventana principal. La ventana principal puede ser una ventana superpuesta, una ventana emergente o incluso otra ventana secundaria. Llame a CreateWindowEx cuando especifique la ventana principal. Si especifica el estilo WS_CHILD en CreateWindowEx, pero no especifica una ventana principal, el sistema no crea una ventana.
  Un hijo, pero no hay otra función del área del cliente de la ventana, a menos que lo soliciten explícitamente. La aplicación puede solicitar una barra de título, un menú de ventana, minimizar y maximizar botones, bordes, ventanas de desplazamiento, un elemento secundario, pero una ventana secundaria no puede tener un menú. Si la aplicación especifica un identificador de menú, o cuando registra una clase de ventana secundaria o crea una ventana secundaria, se ignorará el identificador de menú. Si no se especifica ningún estilo de borde, el sistema creará una ventana sin bordes. La aplicación puede usar la división sin bordes del área del cliente de la ventana principal de una ventana secundaria mientras la mantiene invisible para el usuario.

【转载】http://www.cnblogs.com/ziwuge/archive/2010/12/27/1917817.html

17 artículos originales publicados · Me gusta 228 · Visita 330,000+

Supongo que te gusta

Origin blog.csdn.net/cxu123321/article/details/105494546
Recomendado
Clasificación