惧留孙网

juliusun.com

惧留孙网 > 惧留孙课堂 > 在线手册 > WINDOWS API手册 > CreateWindowEx
acceptAdjustWindowRectAdjustWindowRectExAngleArcAppendMenuArcArcToBeginPaintbindBitBltBM_GETCHECKBM_SETCHECKButton_GetCheckButton_SetCheckClientToScreenclosesocketconnectCreateCompatibleDCCreateDialogCreateDialogParamCreateFontCreateMenuCreatePenCreatePopupMenuCreateSolidBrushCreateWindowCreateWindowExDefWindowProcDeleteDCDeleteObjectDestroyCursorDestroyIconDestroyMenuDestroyWindowDialogBoxDialogBoxParamDialogProcDispatchMessageDrawIconDrawIconExEdit_HideBalloonTipEdit_ShowBalloonTipEDITBALLOONTIPEllipseEM_HIDEBALLOONTIPEM_SHOWBALLOONTIPEndDialogEndPaintFillRectFrameRectGetArcDirectionGetClientRectGetDlgItemGetDlgItemTextGetMessageGetStockObjectGetSystemMetricsGetTextAlignGetWindowTextGetWindowTextLengthInvalidateRectIsDialogMessageLineTolistenLoadCursorLoadIconLoadImageMAKEINTRESOURCEMessageBoxMoveToExMSGPiePOINTPolygonPolylinePolylineToPolyPolylinePostMessagePostQuitMessagePostThreadMessageRectanglerecvRegisterClassRegisterClassExRoundRectScreenToClientSelectObjectsendSendDlgItemMessageSendMessageSetArcDirectionSetBkColorSetBkModeSetDlgItemTextSetPixelSetTextAlignSetTextColorSetWindowTextShowWindowsocketstrcmpStretchBltstrlenTextOutTrackPopupMenuTrackPopupMenuExTranslateMessageUnregisterClassUpdateWindowwcscmpwcslenWindowProcWinMainWM_CHARWM_CLOSEWM_COMMANDWM_CREATEWM_DESTROYWM_GETTEXTWM_GETTEXTLENGTHWM_INITDIALOGWM_KEYDOWNWM_KEYUPWM_LBUTTONDBLCLKWM_LBUTTONDOWNWM_LBUTTONUPWM_MBUTTONDBLCLKWM_MBUTTONDOWNWM_MBUTTONUPWM_MOUSEHWHEELWM_MOUSEMOVEWM_MOUSEWHEELWM_NCDESTROYWM_NCHITTESTWM_PAINTWM_QUITWM_RBUTTONDBLCLKWM_RBUTTONDBLCLKWM_RBUTTONDOWNWM_RBUTTONUPWM_SETFONTWM_SETTEXTWM_XBUTTONDBLCLKWM_XBUTTONDOWNWM_XBUTTONUPWNDCLASSWNDCLASSEXWSACleanupWSADATAWSAStartupwsprintf

CreateWindowEx

创建层叠、弹出或子窗口。调用时需要标识窗口类、标题、风格、初始位置、窗口大小、父窗口或拥有者,窗口菜单可选。
 函数原型:
 HWND WINAPI CreateWindowEx (
DWORDdwExStyle,
LPCTSTRlpClassName,
LPCTSTRlpWindowName,
DWORDdwStyle,
intx,
inty,
intnWidth,
intnHeight,
HWNDhWndParent,
HMENUhMenu,
HINSTANCEhInstance,
LPVOIDlpParam
 );
参数
dwExStyle
类型:DWORD
窗口扩展风格,可不选或多选。官方列表(全),常用列表如下:
宏名宏值意义
WS_EX_ACCEPTFILES0x00000010L可向窗口拖拽文件
WS_EX_APPWINDOW0x00040000L窗口可见时,将一个顶层窗口放置到任务条上
WS_EX_CLIENTEDGE0x00000200L窗口有一个带阴影的边界
WS_EX_CONTEXTHELP0x00000400L在窗口的标题条包含一个问号标志。当用户点击了问号时,鼠标光标变为一个问号的指针、如果点击了一个子窗口,则子窗口接收到WM_HELP消息。子窗口应该将这个消息传递给父窗口过程,父窗口再通过HELP_WM_HELP命令调用WinHelp函数。这个Help应用程序显示一个包含子窗口帮助信息的弹出式窗口。 WS_EX_CONTEXTHELP不能与WS_MAXIMIZEBOX和WS_MINIMIZEBOX同时使用
WS_EX_CONTROLPARENT0x00010000L允许用户使用Tab键在窗口的子窗口间搜索
WS_EX_DLGMODALFRAME0x00000001L创建一个带双边的窗口;该窗口可以在dwStyle中指定WS_CAPTION风格来创建一个标题栏
WS_EX_LAYERED0x00080000创建一个分层窗口
WS_EX_LEFT0x00000000L窗口具有左对齐属性,默认值。
WS_EX_LTRREADING0x00000000L窗口文本从左到右阅读属性,默认值。
WS_EX_MDICHILD0x00000040L创建一个MDI子窗口
WS_EX_RIGHTSCROLLBAR0x00000000L垂直滚动条在窗口的右边界,默认值
WS_EX_RTLREADING0x00002000L如果外壳语言是如Hebrew,Arabic,或其他支持读顺序对齐(reading order alignment)的语言,则窗口文本是一自左向右)RIGHT到LEFT顺序的读出顺序。若是其他语言,在该风格被忽略并且不作为错误处理
WS_EX_STATICEDGE0x00020000L窗口对不接受用户输入的项显示一个三维边框风格
WS_EX_TOPMOST0x00000008L指明以该风格创建的窗口应放置在所有非最高层窗口的上面并且停留在上面,即使窗口未被激活
WS_EX_WINDOWEDGE0x00000100L窗口有一个有凸起的边缘
收起列表

lpClassName
类型:LPCTSTR
以NULL字符结尾的字符串,或由前面调用 RegisterClassEx 的返回的窗口类的原子值。如果是原子值,低16位为原子值,高16位为0。此参数如果是字符串,必须标识窗口类名。类名同样调用 RegisterClassEx 注册过,或是系统预定义过的窗口类名。
可点击 控件库 查看系统预定义类。

lpWindowName
类型:LPCTSTR
当创建的窗口拥有标题栏,此参数指向的字符串将会在标题栏中被显示。当用CreateWindow创建如按钮、复选框、静态框等控件时,此参数指向的是控件内容。如果用 SS_ICON风格创建静态框,此参数指定图标名字或标识符。指定标识符时,用如"#数字"格式语序。

dwStyle
类型:DWORD
窗口风格。可用列表如下:
宏名宏值意义
WS_BORDER0x00800000L窄边框窗口
WS_CAPTION0x00C00000L窗口有标题栏(包含WS_BORDER风格)
WS_CHILD0x40000000L窗口是子窗口。子窗口不能有菜单栏,此风格不能与WS_POPUP同用
WS_CHILDWINDOW0x40000000L同WS_CHILD
WS_CLIPCHILDREN0x02000000L当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格
WS_CLIPSIBLINGS0x04000000L排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到 WM_PAINT 消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口
WS_DISABLED0x08000000L窗口初始状态为禁用的子窗口
WS_DLGFRAME0x00400000L窗口带对话框边框风格。这种风格的窗口不能带标题条
WS_GROUP0x00020000L指定一个控制组的第一个控制成员。这个控制组由第一个控制成员和随后定义的控制成员组成,自第二个控制成员开始每个控制成员,具有WS_GROUP风格,每个组的第一个控制成员带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间通过方向键改变键盘焦点
WS_HSCROLL0x00100000L窗口有水平滚动条
WS_ICONIC0x20000000L窗口初始状态为最小化状态,同WS_MINIMIZE
WS_MAXIMIZE0x01000000L窗口初始状态为最大化状态
WS_MAXIMIZEBOX0x00010000L窗口具有最大化按钮。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格
WS_MINIMIZE0x20000000L窗口初始状态为最小化状态,同WS_ICONIC
WS_MINIMIZEBOX0x00020000L窗口具有最小化按钮。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格
WS_OVERLAPPED0x00000000L窗口是层叠窗口。层叠窗口有标题栏和边框。同WS_TILED
WS_OVERLAPPEDWINDOW(WS_OVERLAPPED |
WS_CAPTION |
WS_SYSMENU |
WS_THICKFRAME |
WS_MINIMIZEBOX |
WS_MAXIMIZEBOX)
窗口具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格,同WS_TILEDWINDOW
WS_POPUP0x80000000L是一个弹出式窗口。该风格不能与WS_CHILD风格同时使用
WS_POPUPWINDOW(WS_POPUP |
WS_BORDER |
WS_SYSMENU)
创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。
WS_SIZEBOX0x00040000L窗口有可调边框,同WS_THICKFRAME
WS_SYSMENU0x00080000L窗口在标题条上带有窗口菜单
WS_TABSTOP0x00010000L创建一个控制成员,这个控制成员在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制成员
WS_THICKFRAME0x00040000L窗口具有可调边框,同WS_SIZEBOX
WS_TILED0x00000000L窗口是层叠窗口。层叠窗口有标题栏和边框。同WS_OVERLAPPED
WS_TILEDWINDOW(WS_OVERLAPPED |
WS_CAPTION |
WS_SYSMENU |
WS_THICKFRAME |
WS_MINIMIZEBOX |
WS_MAXIMIZEBOX)
窗口具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格。同WS_OVERLAPPEDWINDOW
WS_VISIBLE0x10000000L窗口初始时可见
WS_VSCROLL0x00200000L窗口有竖直滚动条
收起列表

x
类型:int
窗口横座标。对于层叠、弹出式窗口,是相对于屏幕左上角。子窗口,相对父窗口客户区左上角。可以使用 CW_USEDEFAULT 让系统选择默认位置,此时忽略y参数。CW_USEDEFAULT只有层叠窗口可用,弹出窗口或子窗口,x和y被设置为0。

y
类型:int
窗口纵座标。对于层叠、弹出式窗口,是相对于屏幕左上角。子窗口,相对父窗口客户区左上角。对于列表框控件,y是列表框窗口区相对于父窗口客户区的座标。

如果层叠窗口包含WS_VISIBLE标志,并且x参数是CW_USEDEFAULT,y参数将决定窗口如何被显示:如果y是CW_USEDEFAULT,窗口管理器在创建完窗口后用SW_SHOW标志来调用 ShowWindow ;如果y是其它值,窗口管理器用主函数的nCmdShow参数来调用 ShowWindow

nWidth
类型:int
以设备单位计算的窗口宽度。对于层叠窗口,此参数是屏幕座标的宽度或CW_USEDEFAULT。if此参数是CW_USEDEFAULT,系统选择窗口默认宽度和高度。默认是从窗口横座标x到屏幕右边边界,默认高度从纵座标y到图标区。CW_USEDEFAULT仅适用层叠窗口,对于弹出窗口或子窗口,此参数与nHeight被设置为0。

nHeight
类型:int
以设备单位计算的窗口高度。对于层叠窗口,此参数是以屏幕座标为标准的高度。如果nWidth被设置成CW_USEDEFAULT,系统忽略此参数。

hWndParent
类型:HWND
被被创建的父窗口或拥有者窗口句柄,为被创建的子窗口或被拥有的窗口提供一个句柄。弹出窗口此参数可选,不需要时设置NULL。

可以使用HANDLE_MESSAGE创建一个 Message-Only 类型窗口。

hMenu
类型:HMENU
对于层叠和弹出窗口,此参数为菜单句柄,指定窗口菜单,为NULL表示使用窗口类菜单,如果窗口类菜单为NULL表示没有菜单;
对于子窗口,此参数是子窗口控件的标识符,可以用来向父窗口通知相关事件,程序可自行决定子窗口控件的标识符,但是同一父窗口下的每个子窗口标识符必须唯一。

hInstance
类型:HINSTANCE
与窗口相关联的模块实例句柄。

lpParam
类型:LPVOID
系统发送的 WM_CREATE lParam参数指向 CREATESTRUCT 类型结构体,系统将本参数赋值给 CREATESTRUCT 结构体的 lpCreateParams成员。此参数可以为NULL。

如果程序调用CreateWindow创建MDI客户窗口,lpParam是 CLIENTCREATESTRUCT 类型指针。如果MDI客户窗口调用CreateWindow创建MDI子窗口,lpParam指向 MDICREATESTRUCT。没有额外信息,此参数可以为NULL。
返回值
类型:HWND
函数成功,返回新窗口句柄。
函数当失败返回NULL。
备注
窗口显示内容根据语言、系统等情况有所不同。
支持
最低桌面系统支持Windows 2000 Professional
头文件Winuser.h (已包含在Windows.h中)
User32.lib
DLLUser32.dll
UNICODE版本名CreateWindowExW
ANSI版本名CreateWindowExA

作者:QQ:3304576112 交流QQ群:316930386 C语言窗口程序学习群 本站保留本页版权,可共享网址,匆复制内容

抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的