基 础 函 数 参 考


GUICtrlSetState

调整控件状态.

GUICtrlSetState ( 控件ID, 状态 )

参 数

控件ID GUICtrlCreate... 函数返回的控件标识符.
状态 请查看下面的 状态表.

返 回 值

成功: 返回 1.
失败: 返回 0.

备 注


    状态表


状态 注释
无变化 0
$GUI_UNCHECKED 单选框(Radio), 复选框(Checkbox)或 ListViewItem(列表视图项目) 非选中.
$GUI_CHECKED 单选框(Radio), 复选框(Checkbox)或 ListViewItem(列表视图项目) 选中.
$GUI_INDETERMINATE 三态属性的复选框(Checkbox)将转换为灰色状态.
$GUI_AVISTART Avi 控件开始播放.
$GUI_AVISTOP Avi 控件停止播放.
$GUI_AVICLOSE Avi 控件停止播放并释放资源.
$GUI_DROPACCEPTED 控件接受文件或其它控件拖放操作的放下操作. 见备注.
$GUI_NODROPACCEPTED 控件不接受拖放操作的放下操作.
$GUI_SHOW 控件可见.对于标签页控件, 则显示第一个标签页.
$GUI_HIDE 控件不可见.
$GUI_ENABLE 控件激活.
$GUI_DISABLE 控件转换为灰色状态.
$GUI_FOCUS 控件获得输入/选择焦点.
$GUI_NOFOCUS Listview 控件释放焦点.
$GUI_DEFBUTTON 控件设置为窗口的默认按钮. 参考 TreeviewItems 备注.
$GUI_EXPAND TreeViewItem(树视图项目)控件展开子项目.
$GUI_ONTOP 控件拥有相对于窗口的置顶(Z 轴)属性.

状态值可以相加使用,比如 $GUI_DISABLE + $GUI_HIDE 使控件禁用并隐藏.

要隐藏 AVI 控件(使用 $GUI_HIDE), 应该使用 $GUI_AVICLOSE 关闭它.

不能修改上下文菜单控件的状态.
如果 "listviewitem" 控件有 $LVS_EX_CHECKBOXES 扩展样式, 则关联的 " listviewitem" 的状态可以改变.
$GUI_FOCUS 与 $GUI_NOFOCUS 可用于特定的 listviewitem,
但 listview 控件需具有 $LVS_SHOWSELALWAYS 样式以显示焦点状态.
不能隐藏"菜单"或"菜单项".

! 状态 $GUI_EXPAND 仅适用于 TreeViewItems. 且必须至少存在或创建一个 TreeViewItem !
如果要在 TreeView 选择另一个项目, 则可以使用 $GUI_FOCUS, 使父层 TreeView 获得焦点, 并指定项目标记为选中.
要设定 treeview 项目文本为粗体, 可以使用 $GUI_DEFBUTTON;
要关掉粗体效果, 则使用另一个值(例如 0)代替 $GUI_DEFBUTTON. 这个状态将不能被 GUICtrlGetState 返回.

如果将 $GUI_DROPACCEPTED 设置到可见控件, 则该控件能接受拖放操作. 编辑/输入控件将显示文件名.
其他控件接收 $GUI_EVENT_DROPPED 消息时, @GUI_DRAGID 将返回拖动开始的控件 ID
(如果是文件则返回 -1, @GUI_DRAGFILE 包含被拖动的文件名), 并且 @GUI_DROPID 返回接受拖动的控件 ID.
仅在拖动 ListviewItem 时会启动拖放进程, @GUI_DRAGID 将存放 ListView 控件 ID.

相 关 函 数

GUICtrlCreate..., GUICtrlGetState

函 数 示 例


#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $msg

    GUICreate("我的状态 GUI") ; 创建居中显示的 GUI 窗口

    GUICtrlCreateLabel("禁用的文本标记", 10, 20)
    GUICtrlSetState(-1, $GUI_DISABLE) ; 文本标记在禁用状态

    GUICtrlCreateButton("我的按钮", 50, 50)
    GUICtrlSetState(-1, $GUI_FOCUS) ; 设置按钮焦点

    GUISetState()

    ; 运行 GUI, 直到 GUI 被关闭
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example

provider with jb51.net (unicode)