CreateWindowEx功能创建一个具有扩展样式的重叠,弹出窗口或子窗口;否则,此函数与CreateWindow功能相同。有关创建窗口和CreateWindowEx其他参数的完整说明的更多信息,请参阅CreateWindow.
HWND CreateWindowEx(
DWORD 【dwExStyle】, | //扩展窗口样式 |
LPCTSTR 【lpClassName】, | //指向注册类名的指针 |
LPCTSTR 【lpWindowName】, | //指向窗口名称的指针 |
DWORD 【dwStyle】, | //窗口样式 |
INT 【x】, | //窗口的水平位置 |
INT 【y】, | //窗口的垂直位置 |
INT 【nWidth】, | //窗口宽度 |
INT 【nHeight参数】, | //窗口高度 |
HWND 【hWndParent】, | //处理父或所有者窗口 |
HMENU 【HMENU】, | //处理菜单或子窗口标识符 |
HINSTANCE 【的hInstance】, | //处理应用程序实例 |
LPVOID 【// pointer to window-creation data】 | //指向窗口创建数据的指针 |
); |
参数
【dwExStyle】
指定窗口的扩展样式。此参数可以是以下值之一:
样式 | 含义 |
WS_EX_ACCEPTFILES | 指定使用此样式创建的窗口接受拖放文件。 |
WS_EX_APPWINDOW | 当窗口最小化时,将任务栏上的顶级窗口强制执行。 |
WS_EX_CLIENTEDGE | 指定窗口与凹陷边缘有边框。 |
WS_EX_CONTEXTHELP | 在窗口的标题栏中包含一个问号。当用户点击问号时,光标将变为具有指针的问号。如果用户然后单击子窗口,则孩子将收到一条WM_HELP消息。子窗口应将消息传递给父窗口过程,该过程应使用HELP_WM_HELP命令调用WinHelp函数。帮助应用程序显示一个弹出窗口,通常包含子窗口的帮助。 WS_EX_CONTEXTHELP不能与WS_MAXIMIZEBOX或WS_MINIMIZEBOX样式一起使用。 |
WS_EX_CONTROLPARENT | 允许用户使用TAB键在窗口的子窗口之间导航。 |
WS_EX_DLGMODALFRAME | 创建一个双边框的窗口;可以通过在【dwStyle】参数中指定WS_CAPTION样式来选择性地创建具有标题栏的窗口。 |
WS_EX_LEFT | 窗口具有通用的“左对齐”属性。这是默认值。 |
WS_EX_LEFTSCROLLBAR | 如果shell语言是希伯来语,阿拉伯语或支持阅读顺序对齐的其他语言,则垂直滚动条(如果存在)位于客户区的左侧。对于其他语言,样式将被忽略,不会被视为错误。 |
WS_EX_LTRREADING | 使用从左到右的阅读顺序属性显示窗口文本。这是默认值。 |
WS_EX_MDICHILD | 创建MDI子窗口。 |
WS_EX_NOPARENTNOTIFY | 指定使用此样式创建的子窗口在创建或销毁时不会将WM_PARENTNOTIFY消息发送到其父窗口。 |
WS_EX_OVERLAPPEDWINDOW | 组合WS_EX_CLIENTEDGE和WS_EX_WINDOWEDGE样式。 |
WS_EX_PALETTEWINDOW | 组合WS_EX_WINDOWEDGE,WS_EX_TOOLWINDOW和WS_EX_TOPMOST样式。 |
WS_EX_RIGHT | 窗口具有通用的“右对齐”属性。这取决于窗口类。这种风格只有在shell语言是希伯来语,阿拉伯语或支持阅读顺序对齐的其他语言的情况下才有效果。否则,样式将被忽略,不会被视为错误。 |
WS_EX_RIGHTSCROLLBAR | 垂直滚动条(如果存在)位于客户区域的右侧。这是默认值。 |
WS_EX_RTLREADING | 如果shell语言是希伯来语,阿拉伯语或支持阅读顺序对齐的其他语言,则使用从右到左阅读顺序属性显示窗口文本。对于其他语言,样式将被忽略,不会被视为错误。 |
WS_EX_STATICEDGE | 创建一个三维边框样式的窗口,用于不接受用户输入的项目。 |
WS_EX_TOOLWINDOW | 创建工具窗口;也就是说,一个旨在用作浮动工具栏的窗口。工具窗口的标题栏比普通的标题栏短,窗口标题用较小的字体绘制。当用户按ALT + TAB时,工具窗口不会出现在任务栏或对话框中。 |
WS_EX_TOPMOST | 指定使用此样式创建的窗口应放置在所有非最高窗口的上方,并应保持在其上方,即使窗口处于停用状态。要添加或删除此样式,请使用SetWindowPos功能。 |
WS_EX_TRANSPARENT | 指定使用此样式创建的窗口是透明的。也就是说,窗口下的任何窗口都不会被窗口遮蔽。使用此样式创建的窗口仅在其下面的所有兄弟窗口更新后才会收到WM_PAINT消息。 |
WS_EX_WINDOWEDGE | 指定一个窗口与边缘的边框。 |
将静态或编辑控件的WS_EX_RIGHT样式用于分别与使用SS_RIGHT或ES_RIGHT样式相同的效果。使用此按钮控件的样式与使用BS_RIGHT和BS_RIGHTBUTTON样式具有相同的效果。
【lpClassName】
指向一个空值终止的字符串或是一个整数原子。如果【lpClassName】是一个原子,它必须是由先前调用GlobalAddAtom创建的全局原子。原子,小于0xC000的16位值必须在【lpClassName】的低位字中。高阶字必须为零。
如果【lpClassName】是一个字符串,则它指定窗口类名称。类名称可以是使用RegisterClass函数或任何预定义的控制类名称注册的任何名称。
【lpWindowName】
指向指定窗口名称的以null结尾的字符串。
【dwStyle】
指定正在创建的窗口的样式。有关【dwStyle】中可以指定的窗口样式的列表,请参阅CreateWindow.
【x】
指定窗口的初始水平位置。对于重叠或弹出窗口,【x】参数是屏幕坐标中窗口左上角的初始x坐标。对于子窗口,【x】是相对于父窗口的客户区域的左上角的窗口左上角的x坐标。
如果【x】设置为CW_USEDEFAULT,Windows将选择窗口左上角的默认位置,并忽略【y】参数。CW_USEDEFAULT仅对重叠的窗口有效;如果为弹出窗口或子窗口指定,则【x】和【y】参数设置为零。
【y】
指定窗口的初始垂直位置。对于重叠或弹出窗口,【y】参数是屏幕坐标下窗口左上角的初始y坐标。对于子窗口,【y】是子窗口左上角相对于父窗口客户区域左上角的初始y坐标。对于列表框,【y】是列表框客户区相对于父窗口客户区左上角的左上角的初始y坐标。
如果使用WS_VISIBLE样式位设置并将【x】参数设置为CW_USEDEFAULT创建重叠窗口,Windows将忽略【y】参数。
【nWidth】
指定窗口的宽度(以设备为单位)。对于重叠窗口,【nWidth】是窗口的宽度,屏幕坐标或CW_USEDEFAULT。如果【nWidth】为CW_USEDEFAULT,Windows将为窗口选择默认的宽度和高度;默认宽度从初始x坐标延伸到屏幕的右边缘;默认高度从初始y坐标延伸到图标区域的顶部。CW_USEDEFAULT仅对重叠的窗口有效;如果为弹出窗口或子窗口指定了CW_USEDEFAULT,则【nWidth】和【nHeight参数】参数设置为零。
【nHeight参数】
指定窗口的高度(以设备为单位)。对于重叠窗口,【nHeight参数】是屏幕坐标中窗口的高度。如果【nWidth】参数设置为CW_USEDEFAULT,Windows将忽略【nHeight参数】.
【hWndParent】
标识正在创建的窗口的父窗口或所有者窗口。当创建子窗口或拥有的窗口时,必须提供有效的窗口句柄。子窗口仅限于其父窗口的客户区域。拥有的窗口是当其所有者最小化时其所有者窗口被销毁或隐藏时被破坏的重叠窗口;它始终显示在其所有者窗口的顶部。虽然【dwStyle】参数包含WS_CHILD样式,但如果【dwStyle】包含WS_POPUP样式,则此参数必须指定有效的句柄。
【HMENU】
根据窗口样式标识菜单或指定子窗口标识符。对于重叠或弹出窗口,【HMENU】标识要用于窗口的菜单;如果要使用类菜单,它可以为NULL。对于子窗口,【HMENU】指定子窗口标识符,该对象框控件用于通知其父项关于事件的整数值。应用程序确定子窗口标识符;它对于具有相同父窗口的所有子窗口必须是唯一的。
【的hInstance】
标识与窗口关联的模块的实例。
【// pointer to window-creation data】
指向通过WM_CREATE消息的【lParam的】参数引用的CREATESTRUCT结构传递给窗口的值。如果应用程序调用{??989796245}创建多个文档界面客户端窗口,【// pointer to window-creation data】必须指向CLIENTCREATESTRUCT结构。
返回值
如果函数成功,则返回值是新窗口的句柄。
如果函数失败,返回值为NULL。
备注
CreateWindowEx函数向正在创建的窗口发送WM_NCCREATE,WM_NCCALCSIZE和WM_CREATE消息。
有关此函数使用的窗口控件类,窗口样式和控件样式的信息,请参阅CreateWindow??函数的说明。
Windows 95:系统最多支持16,364个窗口句柄。
也可以看看
CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindow, GlobalAddAtom, RegisterClass, SetWindowPos, WM_CREATE, WM_NCCALCSIZE, WM_NCCREATE, WM_PAINT, WM_PARENTNOTIFY