Function Reference

首页  后退  前进

GUICtrlSetState

 

调整控件状态.

 

GUICtrlSetState ( controlID, state )

参数

controlID

使用 GUICtrlCreate...() 创建控件类函数返回的控件标识符, 或设置 -1 使用前面创建的控件.

state

请查看下面的 状态表.

返回值

成功:

返回 1.

失败:

返回 0.

备注

  状态表

State

注释

$GUI_CHECKED (1)

单选框(Radio), 复选框(Checkbox)或 ListViewItem(列表视图项目) 选中

$GUI_INDETERMINATE (2)

三态属性的复选框(Checkbox)将转换为灰色状态

$GUI_UNCHECKED (4)

单选框(Radio), 复选框(Checkbox)或 ListViewItem(列表视图项目) 非选中

$GUI_DROPACCEPTED (8)

控件接受文件或其它控件拖放操作的放下操作. 见备注

$GUI_SHOW (16)

显示控件. 对于标签选项卡控件, 则显示第一个标签页

$GUI_HIDE (32)

隐藏控件

$GUI_ENABLE (64)

启用控件

$GUI_DISABLE (128)

控件转换为灰色(不可用)状态

$GUI_FOCUS (256)

控件获得输入/选择焦点

$GUI_DEFBUTTON (512)

控件设置为窗口的默认按钮. 参考 TreeviewItems 备注

$GUI_EXPAND (1024)

TreeViewItem(树视图项目)控件展开子项目

$GUI_ONTOP (2048)

控件拥有相对于窗口的置顶(Z 轴)属性

$GUI_NODROPACCEPTED (4096)

控件不接受拖放操作的放下操作

$GUI_NOFOCUS (8192)

Listview 控件释放焦点

$GUI_AVISTART (0)

Avi 控件开始播放

$GUI_AVISTOP (1)

Avi 控件停止播放

$GUI_AVICLOSE (2)

Avi 控件停止播放并释放资源

 

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

 

如果 AVI 控件使用 $GUI_HIDE (32) 为隐藏状态, 应该使用 $GUI_AVICLOSE (1) 关闭它.

 

不能修改上下文菜单控件的状态.

如果 "列表视图项目" 控件有 $LVS_EX_CHECKBOXES 扩展样式, 则关联的 "列表视图项目" 的状态可以改变.

$GUI_FOCUS (256) 与 $GUI_NOFOCUS (8192) 可用于特定的列表视图项目, 但列表视图控件需具有 $LVS_SHOWSELALWAYS 样式以显示焦点状态.

不能隐藏"菜单"或"菜单项".

 

! 状态 $GUI_EXPAND 仅适用于树视图项目. 且必须存在或创建至少一个树视图项目 !

如果要在树视图选择另一个项目, 则可以使用 $GUI_FOCUS (256), 使父层树视图获得焦点, 并将指定项目标记为选中.

要设定树视图项目文本为粗体, 可以使用 $GUI_DEFBUTTON (512);

要关掉粗体效果, 则使用另一个值(例如 0)代替 $GUI_DEFBUTTON (512). 这个状态将不能被 GUICtrlGetState() 返回.

 

如果将 $GUI_DROPACCEPTED (8) 设置到可见控件, 则该控件能接受拖放操作. 编辑/输入控件将显示(拖放操作)的文件名.

其他控件接收 $GUI_EVENT_DROPPED 消息时,@GUI_DragId 将返回拖动开始的控件 ID

(如果是文件则返回 -1 ,@GUI_DragFile 包含被拖动的文件名), 并且 @GUI_DropId 返回接受拖动的控件 ID.

仅在拖动 ListviewItem 时会启动拖放进程, @GUI_DragId 将存放 ListView 控件 ID.

相关

GUICtrlCreate..., GUICtrlGetState

函数示例

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
    ; Create a GUI with various controls.
    Local $hGUI = GUICreate("Example", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
    ; Create a label and set the state as drop accepted.
    Local $idLabel = GUICtrlCreateLabel("Drop a file on this label.", 10, 10, 400, 40, $WS_BORDER)
    GUICtrlSetState($idLabel, $GUI_DROPACCEPTED)
    ; Create an input and set the state as drop accepted.
    Local $idInput = GUICtrlCreateInput("", 10, 60, 400, 22)
    GUICtrlSetState($idInput, $GUI_DROPACCEPTED)
    Local $idOK = GUICtrlCreateButton("OK", 310, 170, 85, 25)
    ; Display the GUI.
    GUISetState(@SW_SHOW, $hGUI)
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idOK
                ExitLoop
            Case $GUI_EVENT_DROPPED
                ; If the value of @GUI_DropId is $idLabel, then set the label of the dragged file.
                If @GUI_DropId = $idLabel Then GUICtrlSetData($idLabel, @GUI_DragFile)
        EndSwitch
    WEnd
    ; Delete the previous GUI and all controls.
    GUIDelete($hGUI)
EndFunc   ;==>Example

----------------------------------------