Function Reference

首页  后退  前进

GUICtrlRead

 

读取控件的状态或数据.

 

GUICtrlRead ( controlID [, advanced = 0] )

参数

controlID

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

advanced

[可选] 返回控件的扩展信息.

   $GUI_READ_DEFAULT (0) = (默认) 返回控件的状态或者数据.

   $GUI_READ_EXTENDED (1) = 返回控件的扩展信息 (见备注).

 

常量定义在 GUIConstantsEx.au3

返回值

成功:

返回值因控件类型的不同而不同(请看下表).

失败:

返回 0.

 

 

控件类型

返回值

Checkbox(复选框), Radio(单选框)

选择状态 ($GUI_CHECKED 或 $GUI_UNCHECKED)

Combo(组合框), List(列表框)

选中项目的值

Input(输入框), Edit(编辑框)

输入的文本

Button(按钮)

显示的文本

Date(日期)

选择的日期, 格式由区域设置定义

Progress(进度条)

当前进度百分比

Slider(滑动条)

当前值

Tab(标签页控件)

选中的标签页编号( 0 基).

Menu, MenuItem(菜单项目)

菜单/项目的状态. 见状态表

TreeView(树树图)

TreeView 选中项目的控件标识符

TreeViewItem(树视图项目)

树视图项目的状态

ListView(列表视图)

ListView 选中项目的控件标识符. 0 表示没有项目被选中

ListViewItem(列表视图项目)

列表视图所选项目的文本

Dummy(虚拟控件)

使用 GUICtrlSendToDummy()GUICtrlSetData() 设置的值

备注

高级模式的返回值包含控件的附加值.(见下文).

 

注意: 不是所有控件都能返回附加数据!

 

控件类型

附加值

复选框(Checkbox),单选框(Radio)

控件的文本

菜单(Menu),菜单项(MenuItem)

控件的文本

树视图(TreeView)

TreeView 当前选中项目的文本

树视图项目(TreeViewItem)

TreeView 项目的文本

列表视图项目(ListViewItem)

如果在高级模式中用 $LVS_EX_CHECKBOXES 扩展样式时, 返回 ListViewItem 的选中状态. 见状态表

标签页(Tab)控件

选中标签项目的控件 ID

 

由于复选框, 单选框控件只能返回 $GUI_CHECKED (1), $GUI_UNCHECKED (4) 或 $GUI_INDETERMINATE (2) 状态, 因此可以直接使用这些值.

 

由于 Listview 项目能返回 $GUI_CHECKED 与 $GUI_UNCHECKED 状态

(仅当 listview 控件具有 LVS_EX_CHECKBOXES 扩展样式与使用 "advanced" 参数时),

因此可以使用 BitAND(GUICtrlRead($Item),$GUI_CHECKED) 测试项目是否被选中.

 

由于 Treeview 项目能返回 $GUI_FOCUS, $GUI_EXPAND 与 $GUI_CHECKED, $GUI_UNCHECKED

(仅当 treeview 控件具有 TVS_CHECKBOXES 样式时),

因此可以使用 BitAND(GUICtrlRead($Item),$GUI_CHECKED) 测试项目是否被选中.

相关

GUICtrlCreate..., GUICtrlGetState, GUICtrlSendMsg, GUICtrlSendToDummy, GUICtrlSetData, GUICtrlUpdate..., GUIEventOptions (Option), GUIGetMsg

函数示例

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
    GUICreate("My GUICtrlRead") ; will create a dialog box that when displayed is centered
    Local $idMenu1 = GUICtrlCreateMenu("File")
    Local $idList = GUICtrlCreateList("", 10, 10, -1, 100)
    GUICtrlSetData(-1, "item1|item2|item3", "item2")
    Local $idButton = GUICtrlCreateButton("Read", 10, 110, 50)
    GUICtrlSetState(-1, $GUI_FOCUS) ; the focus is on this button
    GUISetState(@SW_SHOW) ; will display an empty dialog box
    Local $idMsg, $iMenustate, $sMenutext
    ; Loop until the user exits.
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idButton Then
            MsgBox($MB_SYSTEMMODAL, "Selected listbox entry", GUICtrlRead($idList)) ; display the selected listbox entry
            $iMenustate = GUICtrlRead($idMenu1) ; return the state of the menu item
            $sMenutext = GUICtrlRead($idMenu1, $GUI_READ_EXTENDED) ; return the text of the menu item
            MsgBox($MB_SYSTEMMODAL, "State and text of the menuitem", "state:" & $iMenustate & @CRLF & "text:" & $sMenutext)
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

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