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
----------------------------------------
|