winuser.h


CreateWindowEx

Le función CreateWindowEx crea una ventana superponible, pop-up o ventana hija con un estilo extendido; de otra manera, esta función es igual a la función CreateWindow. Para más información acerca de crear una ventana, y para una descripción completa de los otros parámetros de CreateWindowEx, ver CreateWindow.

Sintaxis

HWND CreateWindowEx(
  DWORD dwExStyle,      // estilo extendido de ventana
  LPCTSTR lpClassName,  // puntero al nombre de la clase registrada
  LPCTSTR lpWindowName, // puntero al nombre de la ventana
  DWORD dwStyle,        // estilo de ventana
  int x,                // posición horizontal de la ventana
  int y,                // posición vertical de la ventana
  int nWidth,           // ancho de la ventana
  int nHeight,          // alto de la ventana
  HWND hWndParent,      // manejador de la ventana padre o propietaria
  HMENU hMenu,          // manejador de menu, o identificador de ventana hija
  HINSTANCE hInstance,  // manejador de la instancia de la aplicación
  LPVOID lpParam        // puntero a los datos de creación de la ventana
);

Parámetros:

dwExStyle: Especifica el estilo extendido de la ventana. Este parámetro puede ser uno de los siguientes valores:

Estilo Significado
WS_EX_ACCEPTFILES Especifica que una ventana creada con este estilo acepta arrastrar y soltar ficheros.
WS_EX_APPWINDOW Fuerza una ventana de nivel superior sobre la barra de tareas cuando la ventana es visible.
WS_EX_CLIENTEDGE Especifica que una ventana tiene un borde con un lado hundido.
WS_EX_CONTEXTHELP

Incluye un signo de pregunta en la barra de título de la ventana. Cuando el usuario hace un click en el signo, el cursor cambia a un signo de pregunta con un puntero. Si el usuario entonces hace un click en una ventana hija, ésta recibe un mensaje WM_HELP. La ventana hija debería pasara el mensaje al procedimiento de la ventana padre, el cual debería llamar a la función WinHelp usando el comando HELP_WM_HELP. La aplicación de Ayuda muestra una ventana pop-up que típicamente contiene ayuda para la ventana hija.

WS_EX_CONTEXTHELP no puede ser usado con los estilos WS_MAXIMIZEBOX o WS_MINIMIZEBOX.

WS_EX_CONTROLPARENT Permite al usuario navegar entre las ventanas hijas usando la tecla tab.
WS_EX_DLGMODALFRAME Crea una ventana que tiene un borde doble; la ventana puede, opcionalmente, ser creada con una barra de titulo especificando el estilo WS_CAPTION en el parámetro dwStyle.
WS_EX_LEFT La ventana tiene propiedades genéricas de alineamiento a la izquierda. Este es el valor por defecto.
WS_EX_LEFTSCROLLBAR Si el lenguaje de la Shell es Hebreo, Arábico u otro lenguaje que soporte alineamiento de orden de lectura, la barra de desplazamiento vertical (si está presente) está a la izquierda del área de cliente. Para otros lenguajes, el estilo es ignorado y no tratado como un error.
WS_EX_LTRREADING El texto de la ventana es mostrado usando propiedades de orden de lectura de izquierda a derecha.
WS_EX_MDICHILD Crea una ventana hija MDI.
WS_EX_NOPARENTNOTIFY Especifica que una ventana hija creada con este estilo no envía un mensaje WM_PARENTNOTIFY a su ventana padre cuando es creada o destruída.
WS_EX_OVERLAPPEDWINDOW Combina los estilos WS_EX_CLIENTEDGE y WS_EX_WINDOWEDGE.
WS_EX_PALETTEWINDOW Combina los estilos WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW, y WS_EX_TOPMOST.
WS_EX_RIGHT La ventana tiene propiedades genéricas de alineamiento a la derecha. Esto depende de la clase de ventana. Este estilo sólo tiene efecto si el lenguaje de la Shell es Hebreo, Arábico u otro lenguaje que soporte alineamiento de orden de lectura; de otra manera, el estilo es ignorado y no tratado como un error.
WS_EX_RIGHTSCROLLBAR La barra de desplazamiento vertical (si está presente), se ubica a la derecha del área de cliente. Este es el valor por defecto.
WS_EX_RTLREADING Si el lenguaje de la Shell es Hebreo, Arábico u otro leguague que soporte alineamiento de orden de lectura, el texto de la ventana es mostrado usando propiedades de orden de lectura de Derecha a Izquierda. Para otros lenguajes el estilo es ignorado y no tratado como un error.
WS_EX_STATICEDGE Crea una ventana con un estilo de borde tridimensional, hecho con la intención de ser usado con ítems que no aceptan entrada de datos del usuario.
WS_EX_TOOLWINDOW Crea una ventana de herramienta, es decir, una ventana hecha con la intención de ser usada como una barra de herramientas flotante. Una ventana de herramienta tiene una barra de título más corta de lo normal, y la ventana es dibujada usando una fuente menor. Una ventana de herramienta no aparece en la barra de tareas o en el diálogo que aparace cuando el usuario presiona alt+tab. Si una ventana de herramienta posee un menú de sistema, su ícono no es mostrado en la barra de título. En todo caso, se puede mostrar el menú de sistema al hacer doble-click o presionando alt+tab.
WS_EX_TOPMOST Especifica que una ventana creada con este estilo debería ser ubicada sobre todas las ventanas no-topmost y debería permanecer sobre ellas, incluso cuando la ventana es desactivada. Para añadir o quitar este estilo, use la función SetWindowPos.
WS_EX_TRANSPARENT

Especifica que la ventana creada con este estilo no debería ser pintada hasta que las hermanas debajo de ella (que fueron creadas por el mismo hilo) hayan sido pintadas. La ventana parece transparente porque los bits de las ventanas subyacentes ya han sido pintadas.

Para obtener tranparencia sin estas restricciones, use la función SetWindowRgn.

WS_EX_WINDOWEDGE Especifica que la ventana tiene un borde con un lado alzado.

lpClassName: Apunta a una cadena terminada en cero o a un átomo entero. Si lpClassName es un átomo, debe ser un átomo global creado por una llamada previa a GlobalAddAtom. El átomo, un valor de 16 bits menor que 0xC000, debe estar en la palabra de menor orden de lpClassName; la palabra de mayor orden debe ser cero.

lpWindowName: Apunta a una cadena terminada en cero que especifica el nombre de la ventana.

dwStyle: Especifica el estilo de la ventana que es creada. Para una lista de estilos que pueden ser especificados en dwStyle, ver CreateWindow.

x: Especifica la posición horizontal inicial de la ventana. Para una ventana superpuesta (overlapped) o pop-up, el parámetro x es la coordenada x inicial de la esquina superior izquierda de la ventana, en coordenadas de pantalla. Para una ventana hija, x es la coordenada x de la esquina superior izquierda de la ventana, relativa a la esquina superior izquierda del área de cliente de la ventana padre.

Si x es CW_USEDEFAULT, Windows selecciona la posición por defecto para la esquina superior derecha e ignora el parámetro y. CW_USEDEFAULT es válido sólo para ventanas superpuestas; si es especificado para una ventana pop-up o hija, los parámetros x e y son fijados como cero.

y: Especifica la posición vertical inicial de la ventana. Para una ventana superpuesta o pop-up, el parámetro y es la coordenada y inicial de la esquina superior izquierda de la ventana, en coordenadas de pantalla. Para una ventana hija, y es la coordenada y inicial de la esquina superior izquierda de la ventana hija, relativa a la esquina superior izquierda del área de cliente de la ventana padre. Para un list box, y es la coordenada y inicial de la esquina superior izquierda del área cliente del list box relativa a la esquina superior izquierda del área de cliente de la ventana padre.

nWidth: Especifica el ancho, en unidades de dispositivo. Para ventanas superpuestas, nWidth es el ancho de la ventana, en coordenadas de pantalla, o CW_USEDEFAULT. Si nWidth es CW_USEDEFAULT, Windows selecciona un ancho y alto por defecto para la ventana; el ancho por defecto se extiende desde la coordenada x inicial hasta el borde derecho de la pantalla; el alto por defecto se extiende desde la coordenada y inicial hasta la parte superior del área de ícono. CW_USEDEFAULT sólo es válido para ventanas superpuestas; si CW_USEDEFAULT es especificado para una ventana pop-up o hija, los parámetros nWidth y nHeight son fijados como cero.

nHeight: Especifica el alto, en unidades de dispositivo, de la ventana. Para ventanas superpuestas, nHeight es el alto de la ventana en coordenadas de pantalla. Si el parámetro nWidth es fijado como CW_USEDEFAULT, Windows ignora nHeight.

hWndParent: Identifica la ventana padre o propietaria de la ventana que es creada. Se debe suministrar un manejador de ventana válido cuando se crea una ventana hija o una ventana con dueño. Una ventana hija es confinada a el área de cliente de su ventana padre. Una ventana con dueño es una ventana suerpuesta que es destruída cuando su ventana propietaria es destruída, o escondida cuando su propietaria es minimizada; siempre es mostrada encima de ésta. A pesar de que este parámetro debe especificar un manejador válido si el parámetro dwStyle incluye el estilo WS_CHILD, es opcional si dwStyle incluye el estilo WS_POPUP.

hMenu: identifica un menú o especifica el identificador de una ventana hija, dependiendo del estilo de ventana. para una ventana "superpuesta" o una ventana pop-up, hMenu identifica el menú que se usará con la ventana; puede ser NULL si se usa el menú de la clase. Para una ventana hija, hMenu especifica el identificador de ventana hija, un valor entero que se usa por un control de cuadro de diálogo para informar a su ventana padre sobre eventos. Es la aplicación la que determina el identificador de la ventana hija; debe ser único para todas las ventanas hija con la misma ventana padre.

hInstance: identifica la instancia del módulo asociado con la ventana.

lpParam: puntero a un valor pasado a la ventana a través de la estructura CREATESTRUCT referenciada por el parámetro lParam del mensaje WM_CREATE. Si una aplicación llama a CreateWindow para crear una ventana de cliente de una aplicación MDI (Multiple Document Interface), lpParam debe apuntar a una estructura CLIENTCREATESTRUCT.

Valor de retorno

Si la función tiene éxito, el valor de retorno es el manejador de la nueva ventana.

Si la función falla, el valor de retorno es NULL.

Observaciones

Para más información acerca de las clases de controles de ventana, estilos de ventanas y estilos de controles usados con esta función, ver la descripción de la función CreateWindow.

Windows 95: El sistema puede soportar un máximo de 16,364 manejadores.