CreateWindowEx

来源:互联网 发布:node v8.4.0 x64.msi 编辑:程序博客网 时间:2024/04/29 12:33
CreateWindowEx函数创建一个重叠的,自动弹出的(pop-up)或是一个子窗口通过扩展格式。另外这个函数的作用与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 lpParam        // 指向窗口的创建数据
);
参数:
dwExStyle:指定窗口的扩展风格。参数取下表中的值。
Style
Meaning
WS_EX_ACCEPTFILES
创建的窗口支持托放风格
WS_EX_APPWINDOW
当窗口可视时,强制位于任务栏顶层
WS_EX_CLIENTEDGE
指定窗口有一个凹陷的边界。
WS_EX_CONTEXTHELP
在窗口的标题栏中包含一个问号标志,当用户单击该标记时,鼠标符号变成一个问号标符,如果用户接着点击一下子窗口,这个子窗口获得一个WM_HELP消息。子窗口需要传递这个消息给他父窗口的窗口程序,父窗口窗口程序将用HELP_WM_HELP命令调用WinHelp函数,the Help application displays a pop-up window that typically contains help for the child window.
WS_EX_CONTEXTHELP不能使用WS_MAXIMIZEBOX或WS璤MINIMIZEBOX风格
WS_EX_CONTROLPARENT
Controlparent
允许通过tab键在窗口的个个子窗口之间转换
WS_EX_DLGMODALFRAME
Dlgmodalframe
创建一个双边的窗口,这个窗口可以通过在参数dwStyle中设置WS_CAPTION风格随意的用标题栏创建窗口。
WS_EX_LEFT
设置窗口左对齐属性,为默认值
WS_EX_LEFTSCROLLBAR
如果shell语言是希伯来文等,支持reading order alignment,立轴式滚轮在客户区的左边,对于其他语言,该风格被忽略。
WS_EX_LTRREADING
Ltr reading
窗口文本以从左到右的顺序显示,为默认设置
WS_EX_MDICHILD
创建一个多文档界面窗口
WS_EX_NOPARENTNOTIFY
No parent notify
设置该属性,在创建和销毁子窗口时不向其父窗口发送WM_PARENTNOTIFY消息
WS_EX_OVERLAPPEDWINDOW
Over lapped window\ client edge\window edge
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. Windowedge\toolwindow\topmost
WS_EX_RIGHT
生成右对齐窗口,依靠窗口类,这种风格只在希伯来文等文字中起作用。其它文字中将被忽略
WS_EX_RIGHTSCROLLBAR
立轴式滚轮在客户区的右端,为默认值
WS_EX_RTLREADING
Rtl reading
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
Static edge
创建一个三维边类型的窗口,表明该栏不接受用户的输入。
WS_EX_TOOLWINDOW
Tool window
创建工具窗口,意味着窗口将被用作浮动的工具栏,工具窗口的标题要比一般窗口的标题栏要短,窗口使用更小的字体显示,不显示在任务栏中,或用户按 alt+tab键出现的对话框中,如果工具窗口有系统目录,它的图标不显示在标题栏中,但可以通过右击或按alt+space键显示系统目录。
WS_EX_TOPMOST
Top most
创建窗口在所有未设置该属性的窗口的上面,并保持这一状态,甚至窗口被停用,添加或删除这一风格,使用SetWindowPos函数
WS_EX_TRANSPARENT
Trans parent
指定该风格意味着只有当与它在同一线程创建的窗口都绘出时,它才能被绘出,窗口以透明方式显示是因为下面的兄弟窗口已经绘出
WS_EX_WINDOWEDGE
使窗口有一个突起的边缘
 
对于静态或编辑框控件,用WS_EX_RIGHT风格定义与分别使用SS_RIGHTES_RIGHT有相同的效果。对于按钮使用该风格与使用BS_RIGHTBS_RIGHTBUTTON风格相同。
 
lpClassName:指向一个非空的字符串,或是一个整形的变量,如果lpClassName为一个单元数,它必须是一个事先调用GlobalAddAtom创建的全局变量,该变量有16个字节,值小于0xC000高字位为零,低字位为lpClassName的值.
 
如果是一个字符串,他指定窗口类的名字,这个名字可以是任何被RegisterClassEx函数注册的名字或是任何事先定义的控件类的名字。
 
lpWindowName:指向一个指定窗口名的非空字符串,如果窗口类型指定一格标题栏,该字符串会显示在标题栏中,当用CreateWindow创建控件,如按钮、检查框等。用该参数指定控件的文本。
dwStyle:指定窗口被创建的风格,该参数可以复合使用下列窗口类型以及备注中提到的控件类型。
Style
Meaning
WS_BORDER  border
创建一个细边界的窗口
WS_CAPTION
Caption
创建一个带标题栏的窗口,包含WS_BORDER风格
WS_CHILD
创建一个子窗口,该风格必须与WS_POPUP一起使用
WS_CHILDWINDOW
与 WS_CHILD 风格相同
WS_CLIPCHILDREN
Clip children
当窗口绘制发生在父窗口中,拒绝该区域被子窗口占据
WS_CLIPSIBLINGS
Clip siblings
该风格涉及到相互联系的子窗口,当一个特殊的子窗口收到一个WM_PAINT消息,该风格夹起(clip)其他重叠显示的子窗口,并刷新子窗口区域,如未指定该风格,且窗口允许重叠,则会在客户区域重叠显示。
WS_DISABLED
创建一个被禁用的窗口,该窗口不会接受用户的输入
WS_DLGFRAME
Dlgframe
创建一个在对话框中使用的具有典型边框风格的窗口,该风格的窗口没有标题栏
WS_GROUP
Group
指定控件组得第一个控件,一个控件组有首控件和跟在其后得一系列控件组成,每个控件组得第一个控件一般要定义WS_TABSTOP类型,所以使用者可以从一个控件组到另一个控件组。随后可以使用方向键通过改变键盘得焦点实现,从一个控件转移到另一个控件。
WS_HSCROLL
具有水平滚动栏的窗口
WS_ICONIC
Iconic
创建一个初始化状态为最小化得窗口. 等同于 the WS_MINIMIZE 风格
WS_MAXIMIZE
创建一个初始化状态为最大化得窗口
WS_MAXIMIZEBOX
创建一个最大化按钮得窗口,不能和WS_EX_CONTEXTHELP一起使用。而WS_SYSMENU风格必须被指定。
WS_MINIMIZE
创建一个初始化状态为最小化得窗口,等同于Same as the WS_ICONIC 风格
WS_MINIMIZEBOX
创建一个最小化按钮得窗口,不能和WS_EX_CONTEXTHELP一起使用。而WS_SYSMENU风格必须被指定。
WS_OVERLAPPED
Over lapped
创建一个重叠的窗口,有一个标题栏和一个边框,等同于WS_TILED风格
WS_OVERLAPPEDWINDOW
Over lapped window
创建一个重叠窗口有 WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, 和 WS_MAXIMIZEBOX 风格. 等同于 WS_TILEDWINDOW风格
WS_POPUP
创建pop-up窗口,不能与WS_CHILD风格共用
WS_POPUPWINDOW
Creates a pop-up window with WS_BORDER, WS_POPUP, and WS_SYSMENU styles. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.
WS_SIZEBOX
Creates a window that has a sizing border. Same as the WS_THICKFRAME style.
WS_SYSMENU
有菜单栏的窗口. WS_CAPTION 必须同时被指定
WS_TABSTOP
指定控件可以接受用户Tab键的输入,用该键把焦点转移到下一个指定了该风格的下一个控件
WS_THICKFRAME
Creates a window that has a sizing border. Same as the WS_SIZEBOX style.
WS_TILED
创建一个重叠窗口
WS_TILEDWINDOW
Creates an overlapped window with the WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX styles. Same as the WS_OVERLAPPEDWINDOW style.
WS_VISIBLE
创建一个初始状态为可见的窗口
WS_VSCROLL
创建一个有垂直滚轴的窗口
x:指定初始时窗口的水平位置,对于重叠或弹出式窗口,x是初始窗口左上角相对于整个屏幕的坐标。对于子窗口是该窗口左上角相对于其父窗口客户区域x轴坐标。
如果CW_USEDEFAULT作参数,系统为窗口左上角选择默认位置,并忽略参数y。只对重叠窗口有效,如果指定了弹出式窗口或子窗口,x,y参数设为0。
y:纵坐标,同x参数相似。
nWidth:指定窗口的宽度,对于对于重叠窗口,nWidth是相对于屏幕坐标的窗口宽度,或CW_USEDEFAULT,如果取CW_USEDEFAULT,系统选择默认宽度从x值延伸到屏幕右边界,默认高度从y值到图标区域顶部,CW_USEDEFAULT只在重叠窗口中有效,如果在弹出或子窗口中取CW_USEDEFAULT,nWidth和nHeight参数设为0。
nHeight:指定窗口高度,对于重叠窗口,nHeight是相对于屏幕坐标的窗口高度,如果nWidth设为CW_USEDEFAULT,忽略nHeight的值。
hwndParent:父窗口的句柄,创建一个子窗口或附属窗口时提供的一个有效的窗口句柄,对于弹出式窗口该参数是可选的。
hMenu:菜单的句柄,或依靠窗口风格,指定子窗口的标识符。对于重叠窗口或弹出式窗口用来识别窗口的菜单,如果(class menu)被使用,该参数可以是空。对于子窗口hMenu指定一个子窗口的标识符为一整数,通过对话框控件向其父窗口通报事件。应用程序决定子窗口标识符,在同一个父窗口中,所有子窗口的标识符必须是唯一的。
hInstance: 与窗口相连的模块实例的句柄。
lpParam:A pointer to a value to be passed to the window through the CREATESTRUCTstructure passed in the lParam parameter the WM_CREATE message.如果应用程序调用CreateWindow创建一个多文本接口客户窗口,lpParam必须指向CLIENTCREATESTRUCT结构体。
返回值:如果函数成功返回新窗口的句柄,如果失败返回值为空,要获得更多错误信息,调用GetLastError函数。
备注:CreateWindow 发送WM_NCCREATE,  WM_NCCALCSIZE,WM_CREATE消息给正在创建的窗口。
关于控制在任务栏是否为创建的窗口显示一个按钮的信息,参见Visibility of Taskbar Buttons。
下面的预控制类,可以指定lpClassName参数。记下相应的可以在dwStyle参数中使用的控制类型。
Class
Meaning
BUTTON
命名一个小的矩形子窗口描绘一个按钮,可以通过点击打开或关闭它,可以单独用也可以成组用,可以有标签也可以不显示任何文本,,Button controls typically change appearance when the user click them。
 
对于桌面的按钮风格你可以指定dwStyle参数,详见Button Styles
COMBOBOX
命名一个包含列表栏和类似编辑控件的选择栏控件,使用这种风格时会一直显示一个列表框或是一个下拉列表框。如果是可视的,输入字符选择栏………
 
For a table of the combo box styles you can specify in the dwStyle parameter, seeCombo Box Styles.
Windows95最多支持16364个窗口句柄。

原创粉丝点击