CreateWindow Function
CreateWindow 函数创建一个交叠的、弹出的或者子窗口。它指定窗口类、窗口标题、窗口风格以及窗口初始化时的位置和大小(可选的)。它也指定了窗口的父窗口或者所有者,还可以指定窗口的菜单。要使用除了被CreateWindow支持的扩展的窗口风格,使用CreateWindowEx 函数。
语法:
HWND CreateWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
参数:
lpClassName
一个指向以零结尾的字符串的指针,或者指向以前由RegisterClass或RegisterClassEx条用创建的原子的指针。这个原子必须是次参数的低位,高位必须是0。如果是一个字符串,它指定窗口类的名称。类名可以是用RegisterClass或RegisterClassEx注册过的任何名称,provided that the module that registers the class is also the module that creates the window.类名称也可以是任何预定义的系统类名称。
lpWindowName
指向指定窗口名称的以零结尾的字符串的指针。如果窗口的风格指定了一个标题栏,则它将会显示在标题栏上。当使用CreateWindow创建控件时,此参数指定控件的文字。当用SS_ICON风格创建static 控件时,此参数指定图标的名称或者标识符。要指定一个标识符,使用”#num”语法。
dwStyle
指定要创建窗口的风格。可以是窗口风格的组合,加上控件的风格的组合。
x
指定窗口的初始水平位置。对于overlapped 或者弹出式窗口,x参数是初始的x坐标相当窗口的左上角,在屏幕坐标系上。For a child window, x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner of the parent window's client area.如果参数值被设置为CW_USEDEFAULT,系统为窗口左上角选择默认的位置并忽略y参数。CW_USEDEFAULT仅对overlapped窗口有效,如果它在弹出窗口或者自窗口上被指定,则x和y参数被设置为零。
y
指定窗口的初始化垂直位置。对于交叠式窗口或者弹出式窗口,y参数是在屏幕坐标上初始的窗口左上角的y坐标。对于子窗口,y是和父窗口客户区左上角相关的初始子窗口左上角的y坐标。对于listbox控件,y是和父窗口客户区左上角相关的listbox客户区初始的左上角的y坐标。如果用WS_VISIBLE风格创建一个overlapped窗口并且x参数设置为CW_USEDEFAULT,系统忽略y参数。
nWidth
用设备单位指定窗口的宽度。对于overlapped窗口,nWidth参数既可以是在屏幕坐标上窗口的宽度,也可以是CW_USEDEFAULT.如果nWidth是CW_USEDEFAULT,系统选择一个默认的宽度和高度,这个默认的宽度从初始的x坐标到屏幕的右边缘,默认的高度从y坐标到图标区的顶端。CW_USEDEFAULT仅对overlapped窗口可用,如果对子窗口或者弹出窗口设置了CW_USEDEFAULT,则nWidth和nHeight被设置为0。
nHeight
指定窗口的高度用设备单位。对于overlapped窗口,nHeight是在屏幕坐标上窗口的高度。如果nWidth被设置为CW_USEDEFAULT,系统忽略nHeight。
hWndParent
指向被创建窗口的父窗口或者所有者窗口的句柄。要创建一个子窗口或者一个被所有的窗口,提供一个有效的窗口句柄。这个参数对于弹出式窗口是可选的。
hMenu
菜单句柄,或者指定一个依靠窗口风格的子窗口标识符。对于overlapped窗口或者弹出式窗口,hMenu识别窗口要使用的菜单。可以是NULL如果使用类的菜单。对于子窗口,hMenu指定自窗口的标识符,一个用来通知父窗口对话框控件的事件的整数。程序决定子窗口的标识,他对于相同父窗口的所有子窗口必须是唯一的。
hInstance
Windows 95/98/Me: 和这个窗口有关系的模块的实例句柄。
Windows NT/2000/XP: 此值被忽略。
lpParam
[in] Pointer to a value to be passed to the window through the CREATESTRUCT structure passed in the lpParam parameter the WM_CREATE message. 如果一个程序通过调用CreateWindow 创建多文档界面的客户窗口。lpParam 必须指向一个CLIENTCREATESTRUCT结构。
本文来自 ms-help://MS.PSDKXPSP2.1033/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindow.htm
CreateWindow是学习Windows程序设计中用到的第一个看得见效果的函数,呵呵。有很多词不知道怎么翻译,主要是自己记学习日记。