GUICreate
创建 GUI 窗口.
GUICreate ( "title" [, width [, height [, left = -1 [, top = -1 [, style = -1 [, exStyle = -1 [, parent = 0]]]]]]] )
参数
title
|
窗口标题.
|
width
|
[可选] 窗口宽度.
|
height
|
[可选] 窗口高度.
|
left
|
[可选] 窗口左侧像素距离. 默认值(default) -1, 窗口居中显示.
若此参数被指定,则参数"顶距"也必须指定.
|
top
|
[可选] 窗口上方的像素距离. 默认值(default)为 -1, 窗口居中显示
|
style
|
[可选] 指定窗口的显示样式. 见附录 GUI 控件样式表.
默认值(default) -1,表示下列样式的组合:
$WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU.
有些样式总是包括: $WS_CLIPSIBLINGS, 与 $WS_SYSMENU 例如 $WS_MAXIMIZEBOX 或 $WS_SIZEBOX.
|
exStyle
|
[可选] 指定窗口的扩展样式. 见下面 扩展样式表.
默认 -1, 无扩展样式.
强制样式: $WS_EX_WINDOWEDGE
|
parent
|
[可选] 另一个已创建窗口的句柄, 此(新创建)窗口将成为该窗口的子窗口.
|
返回值
成功:
|
返回窗口句柄.
|
失败:
|
返回 0, 如果无法创建窗口则设置 @error 为 1.
|
备注
默认设置创建的窗口不可调整大小, 并且不可最大.
可添加 WS_SIZEBOX 或 WS_MAXIMIZEBOX 到"样式"参数.
一个样式参数仅添加一种样式, 别忘了此样式与默认样式的组合,
例如定义 WS_SIZEBOX 将不会设置 $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU.
因此, 最好的方法是使用 WS_OVERLAPPEDWINDOW 定义一个可调整大小的窗口.
当使用 $WS_EX_MDICHILD 样式时, 子窗口的坐标将相对于父窗口的客户区.
使用 $WS_EX_LAYERED 可以在父窗口创建透明的背景图片.
添加 $WS_CLIPCHILDREN 样式可避免一些窗口闪烁, 例如调整包含编辑控件的 GUI 大小时.
使用 $WS_EX_CONTROLPARENT 扩展样式参数, 可以对没有 $WS_CAPTION 样式的 GUI 启用窗口拖动操作.
要在默认样式上添加新样式, 可使用 BitOR($GUI_SS_DEFAULT_GUI, 新样式,...) 语句.
指定的大小是窗囗客户区域的大小. 边框和标题栏将略大于指定的窗口大小. 使用菜单控件将改变窗口的高度.
扩展样式
|
结果
|
$WS_EX_ACCEPTFILES
|
允许 GUI 的编辑框/输入控件接受文件的拖放操作.
但控件必须由 GUICtrlSetState() 设置 $GUI_DROPACCEPTED 状态.
其它控件的拖放信息可以由 @GUI_DragId, @GUI_DragFile, @GUI_DropId 检索.
|
$WS_EX_APPWINDOW
|
窗口可见时强制任务栏图标显示为顶层窗口.
|
$WS_EX_CLIENTEDGE
|
使窗口带有凹陷边框.
|
$WS_EX_CONTEXTHELP
|
窗口标题栏包括一个问号. 不能和 WS_MAXIMIZEBOX 或 WS_MINIMIZEBOX 同时使用.
|
$WS_EX_DLGMODALFRAME
|
创建双边框的窗口; 如指定 WS_CAPTION 样式可使窗口具有标题栏.
|
$WS_EX_MDICHILD
|
创建父窗口包含的子窗口 (不是真正的MDI)
|
$WS_EX_OVERLAPPEDWINDOW
|
$WS_EX_CLIENTEDGE 与 $WS_EX_WINDOWEDGE 样式的组合.
|
$WS_EX_STATICEDGE
|
创建三维边框样式的窗口, 用于不接受用户输入的项目.
|
$WS_EX_TOPMOST
|
创建的窗口即使失去激活状态, 也始终在所有非顶层窗口之上.
|
$WS_EX_TRANSPARENT
|
使窗口透明显示, 它下方的同属窗口已经被重绘.
|
$WS_EX_TOOLWINDOW
|
创建工具窗口, 作为浮动工具栏使用. 工具窗口的标题栏比普通标题栏要短, 标题使用更小的字体.
按下 ALT+TAB 快捷键时, 此窗口不会出现在任务栏中或对话框中.
如果工具窗口有系统菜单, 图标不会显示在标题栏中. 但点击 ALT+SPACE 可显示系统菜单.
|
$WS_EX_WINDOWEDGE
|
窗口带有凸起边框.
|
$WS_EX_LAYERED
|
创建分层窗口. 注意此样式不能用于子窗口.
|
使用上面列出的值必须将 #include <WindowsConstants.au3> 语句写入脚本中.
注意:本函数返回的句柄是真正的 windows 窗口句柄, 使用 WinGetHandle() 函数将返回一样的结果.
在 GuiSetState() 前使用 WinMove() 改变 GUI 窗口大小不会改变已定义的控件位置和大小.
相关
GUICtrlCreate..., GUICtrlSetDefBkColor, GUICtrlSetDefColor, GUIDelete, GUIGetCursorInfo, GUIGetMsg, GUIGetStyle, GUISetParameters..., GUISetState, GUISwitch, WinGetHandle, WinMove
函数示例
示例 1
#include <GUIConstantsEx.au3>
Example()
Func Example()
; Create a GUI with various controls.
Local $hGUI = GUICreate("Example")
Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)
; Display the GUI.
GUISetState(@SW_SHOW, $hGUI)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $idOK
ExitLoop
EndSwitch
WEnd
; Delete the previous GUI and all controls.
GUIDelete($hGUI)
EndFunc ;==>Example
示例 2
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
Local $sFilePath = "..\GUI\logo4.gif"
; Create a GUI with various controls.
Local $hGUI = GUICreate("Example", 400, 100)
GUICtrlCreatePic("..\GUI\msoobe.jpg", 0, 0, 400, 100)
; Display the GUI.
GUISetState(@SW_SHOW, $hGUI)
Local $hChild = GUICreate("", 169, 68, 20, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI)
; Create a picture control with a transparent image.
GUICtrlCreatePic($sFilePath, 0, 0, 169, 68)
; Display the child GUI.
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
; Delete the previous GUIs and all controls.
GUIDelete($hGUI)
GUIDelete($hChild)
EndFunc ;==>Example
----------------------------------------
|