CreateWindow 函数用来创建一个窗口,第三个参数 dwStyle 用来指定窗口风格,它的取值如下表所示(也可以是多个值的组合):
取值 | 含义 |
---|---|
WS_BORDER | 创建一个单边框的窗口 |
WS_CAPTION | 创建一个有标题框的窗口(包括WS_BODER风格) |
WS_CHILD | 创建一个子窗口。这个风格不能与WS_POPUP风格合用。 |
WS_CHILDWINDOW | 与WS_CHILD相同 |
WS_CLIPCHILDREN | 当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。 |
WS_CLIPSIBLINGS | 排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。 |
WS_DISABLED | 创建一个初始状态为禁止的子窗口。一个禁止状态的窗口不能接受来自用户的输入信息。 |
WS_DLGFRAME | 创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。 |
WS_GROUP | 指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。 |
WS_HSCROLL | 创建一个有水平滚动条的窗口。 |
WS_ICONIC | 创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。 |
WS_MAXIMIZE | 创建一个初始状态为最大化状态的窗口。 |
WS_MAXIMIZEBOX | 创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。 |
WS_OVERLAPPED | 产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。 |
WS_OVERLAPPEDWINDOW | 创建一个具有WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXIMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。 |
WS_POPUP | 创建一个弹出式窗口。该风格不能与WS_CHILD风格同时使用。 |
WS_POPUPWINDOW | 创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。 |
WS_SIZEBOX | 创建一个可调边框的窗口,与WS_THICKFRAME风格相同。 |
WS_SYSMENU | 创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。 |
WS_TABSTOP | 创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。 |
WS_THICKFRAME | 创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。 |
WS_TILED | 产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。 |
WS_TILEDWINDOW | 创建一个具有WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。 |
WS_VISIBLE | 创建一个初始状态为可见的窗口。 |
WS_VSCROLL | 创建一个有垂直滚动条的窗口。 |
对于一般的窗口,常用的取值有 WS_BORDER、WS_CHILD(常用于控件)、WS_VISIBLE 等。
观察上表可以发现,dwStyle 参数的取值都是以WS开头的,WS 是Window Style的缩写,意思是窗口风格。
窗口样式需要在两个地方指定,一个是本节讲的 CreateWindow 函数的 dwStyle 参数,另一个是窗口类 WNDCLASS 的 style 字段,详情请查看《WNDCLASS中style字段的取值》。