(1)函数原型
1 HWND CreateWindow( 2 LPCTSTR lpClassName, //pointer to register class name 3 LPCTSTR lpWindowName, //pointer to window name 4 DWORD dwstyle, //window style 5 int X, //horizontal position of window 6 int Y, //vertical positon of window 7 int nWidth, //window width 8 int nHeight, //window height 9 HWND hWndParent, //handle to parent or owner window 10 HMENU hMenu, //handle to menu or child-window identifier 11 HANDLE hInstance, //handle to application instance 12 LPVOID lpParam //pointer to window-creation data 13 }
(2)函数说明
该函数创建一个重叠式、弹出式窗口或子窗口。CreateWindow函数指定窗口类型、窗口标题、窗口样式和窗口的初始位置及大小(可选项)。CreateWindow函数还指定窗口的父窗口、拥有者窗口和窗口菜单。
对重叠式窗口、弹出式窗口和子窗口来讲,CreateWindow函数发送WM_CREATE、WM_GETMINMAXINFO和WM_NCCREATE消息给窗口。WM_CREATE消息的lParam参数包含一个指向CREATESTRUCT数据结构的指针。如果将窗口指定为WS_WISIBLE样式,CreateWindow函数将把为打开和显示此窗口所需要的所有消息发送给该窗口,以便打开和显示该窗口。如果窗口样式函数指定了标题条,则由lpWindowName参数指定的窗口标题将在标题条中显示。当使用CreateWindow创建如按钮、选中和正文等控件时,lpWindowName参数指定控件的正文。
CreateWindow函数即可用作宽字符函数,有可用作ANSI函数。
(3)参数说明
① lpClassName:指向一个以NULL为终止符的字符串,该串命名窗口类。类名可以是用RegisterClass函数注册的任何名字,或者是在下表中的任何预定义的控制类名。
<控件类名及其含义>
类 | 实际含义 |
BUTTON |
一个小的矩形子窗口,该子窗口代表一个按钮,用户能通过鼠标单击来打开或关闭它。按钮控件可单独使用或成组使用,也可贴上文字标签,也可不包含文本。当用户用鼠标单击此按钮时,按钮控件常常要改变它的显示外观。 |
COMBOBOX |
规定一个控件,该控件由类似与一个编辑控件和一个列表框的选择区域组成。列表框可一直显示,或由用户单击紧挨选择域的下拉图标来显示或隐藏。用户能否编辑选择域中的内容取决于组合框的方式。如果列表框是可见的,则键入到选择框中的内容将使列表框中与输入字符匹配的第1条列表框项变成高亮显示。相反,在列表框中选择一个项后,将在选择域中显示这个选择项。 |
EDIT |
规定一个矩形子窗口。用户能在这个窗口通过键盘输入文字。用户选择控件后,输入焦点将赋给此控件,这可通过在此控件上按下鼠标键或用Tab键将输入该焦点移到此控件上来实现。当控件显示一个闪烁的插入字符时,用户就能输入文字。鼠标能用于移动光标和选择要替换的字符或者在插字符处定位光标。Backspace键能用来删除字符。编辑控件使用变宽字并显示ANSI字符,编译运行用以前Windows版本的应用程序,将显示不等宽字体的文字。应用程序还可发送WM_SETFONT消息给编辑控制,以便改变缺省字体。编辑控件把制表符按需要扩展成多个空格字符,以把光标移到下一个制表定位处。Tab的停止位置假定在第8个字符位置上。 |
LISTBOX |
指定一个字符串表。应用程序在任何需要显示一个名字列表的时候(例如:用户查看和选择文件名)该控件将被使用。用户可通过鼠标单击选中一个串,此串被高亮显示,并且发送一个通知信息给父窗口。在列表框控件中,可使用垂直或水平的屏幕滚动条,以便在控件窗口中滚动超出列表框范围的列表项。列表框可根据需要自动地隐藏或显示屏幕滚动条。 |
MDICLIENT |
指定一个MDI用户窗口。用户窗口接收控制MDI应用程序子窗口的消息。推荐方式为WS_CLIPCHIILDREN和WS_CHILD。应用程序可以使用WS_HSCROLL和WS_VSCROLL方式来创建一个允许用户滚动MDI子窗口的MDI用户窗。 |
RichEdit |
指定一个RichEdit1.0控件,此控件可以查看和编辑文本,并且具有字符和段落功能。此控件还能够接纳COM对象。 指定一个RichEdit2.0控件 |
SCROLLBAR |
指定一个滚动条矩形,此矩形两头有方向箭头,中间有翻阅块。每当用户在滚动条控件上按键时,滚动条就发送一个通知消息给它的父窗口。如果必要的话,父窗口负责修改翻阅块。滚动条控制与普通窗口中使用滚动条具有相同的外观并使用相同的函数。但与一般滚动条不同,滚动条控件能够定位在窗口中的任何位置上,并在任何需要为一个窗口提供滚动条输入时使用。 |
STATIC |
指定“一个简单的正文域、框,或者可贴上标签的矩形、框,或分开其他控制的矩形”。静态空间无输入,也不提供输入。 |
② lpWindowName:指向一个以NULL为终止符的字符串,该字符串代表该窗口的名字。
③ dwStyle:指定所创建的窗口样式。它可以是下表中给出的任何方式的组合。
④ X:指定窗口初始的X位置。对于重叠式窗口或者弹出式窗口,X参数为窗口左上角初始的x坐标(在屏幕坐标系中)。
如果这个值是CW_USEDEFAULT,Windows为窗口左上角选择缺省的位置。对于一个子窗口,X是窗口在其父窗口的用户区域中
⑤ Y:指定