The CreateWindowEx function creates an overlapped, pop-up, or child window with an extended style; otherwise, this function is identical to the CreateWindow function. For more information about creating a window and for full descriptions of the other parameters of CreateWindowEx, see CreateWindow.
HWND CreateWindowEx(
DWORD dwExStyle, |
// extended window style |
LPCTSTR lpClassName, |
// pointer to registered class name |
LPCTSTR lpWindowName, |
// pointer to window name |
DWORD dwStyle, |
// window style |
int x, |
// horizontal position of window |
int y, |
// vertical position of window |
int nWidth, |
// window width |
int nHeight, |
// window height |
HWND hWndParent, |
// handle to parent or owner window |
HMENU hMenu, |
// handle to menu, or child-window identifier |
HINSTANCE hInstance, |
// handle to application instance |
LPVOID lpParam |
// pointer to window-creation data |
); |
Style |
Meaning |
WS_EX_ACCEPTFILES |
Specifies that a window created with this style accepts drag-drop files. |
WS_EX_APPWINDOW |
Forces a top-level window onto the taskbar when the window is minimized. |
WS_EX_CLIENTEDGE |
Specifies that a window has a border with a sunken edge. |
WS_EX_CONTEXTHELP |
Includes a question mark in the title bar of the window. When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window. WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles. |
WS_EX_CONTROLPARENT |
Allows the user to navigate among the child windows of the window by using the TAB key. |
WS_EX_DLGMODALFRAME |
Creates a window that has a double border; the window can, optionally, be created with a title bar by specifying the WS_CAPTION style in the dwStyle parameter. |
WS_EX_LEFT |
Window has generic “left-aligned” properties. This is the default. |
WS_EX_LEFTSCROLLBAR |
If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the vertical scroll bar (if present) is to the left of the client area. For other languages, the style is ignored and not treated as an error. |
WS_EX_LTRREADING |
The window text is displayed using Left to Right reading-order properties. This is the default. |
WS_EX_MDICHILD |
Creates an MDI child window. |
WS_EX_NOPARENTNOTIFY |
Specifies that a child window created with this style does not send the WM_PARENTNOTIFY message to its parent window when it is created or destroyed. |
WS_EX_OVERLAPPEDWINDOW |
Combines the WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles. |
WS_EX_PALETTEWINDOW |
Combines the WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW, and WS_EX_TOPMOST styles. |
WS_EX_RIGHT |
Window has generic “right-aligned” properties. This depends on the window class. This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports reading order alignment; otherwise, the style is ignored and not treated as an error. |
WS_EX_RIGHTSCROLLBAR |
Vertical scroll bar (if present) is to the right of the client area. This is the default. |
WS_EX_RTLREADING |
If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the window text is displayed using Right to Left reading-order properties. For other languages, the style is ignored and not treated as an error. |
WS_EX_STATICEDGE |
Creates a window with a three-dimensional border style intended to be used for items that do not accept user input. |
WS_EX_TOOLWINDOW |
Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE. |
WS_EX_TOPMOST |
Specifies that a window created with this style should be placed above all non-topmost windows and should stay above them, even when the window is deactivated. To add or remove this style, use the SetWindowPos function. |
WS_EX_TRANSPARENT |
Specifies that a window created with this style is to be transparent. That is, any windows that are beneath the window are not obscured by the window. A window created with this style receives WM_PAINT messages only after all sibling windows beneath it have been updated. |
WS_EX_WINDOWEDGE |
Specifies that a window has a border with a raised edge. |
Using the WS_EX_RIGHT style for static or edit controls has the same effect as
using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with
button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON
styles.
If lpClassName is a string, it specifies the window class name. The
class name can be any name registered with the RegisterClass
function or any of the predefined control-class names.
If x is set to CW_USEDEFAULT, Windows selects the default position for
the window’s upper-left corner and ignores the y parameter.
CW_USEDEFAULT is valid only for overlapped windows; if it is specified for a
pop-up or child window, the x and y parameters are set to zero.
If an overlapped window is created with the WS_VISIBLE style bit set and the x
parameter is set to CW_USEDEFAULT, Windows ignores the y parameter.
If the function succeeds, the return value is the handle to the new window.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
The CreateWindowEx function sends WM_NCCREATE, WM_NCCALCSIZE, and WM_CREATE messages to the window being created.
For information about the window control classes, window styles, and control styles used with this function, see the description of the CreateWindow function.
Windows 95: The system can support a maximum of 16,364 window handles.
CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindow, GlobalAddAtom, RegisterClass, SetWindowPos, WM_CREATE, WM_NCCALCSIZE, WM_NCCREATE, WM_PAINT, WM_PARENTNOTIFY