复选框的值改如何设定???
本帖最后由 天堂泪吻泪 于 2009-7-8 22:18 编辑#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form1 = GUICreate("复选框实例", 476, 277, 193, 125)
$drivers = GUICtrlCreateCheckbox("drivers", 136, 56, 97, 17)
$Button1 = GUICtrlCreateButton("确定", 112, 152, 75, 25, 0)
$Button2 = GUICtrlCreateButton("关闭", 216, 152, 75, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If GUICtrlRead($drivers)=1 Then
MsgBox(64,"复选框实例",$drivers&"被中!")
Else
MsgBox(64,"复选框实例",$drivers&"未被中!")
EndIf
Case $Button2
Exit
EndSwitch
WEnd
帮助里是这样的
[
返回值
成功: 返回控件标识符(控件ID)。
失败: 返回值为0。
]
复选框的值为什么会是“3”,有点搞不懂!可不可以是其他的值,如"drivers"??
问题已经解决了!谢谢4楼,真是感谢万分! 你是想读控件吧
guictrlread就行了 返回的只是控件ID,用窗口信息工具看一下你就明白了 本帖最后由 lynfr8 于 2009-7-8 19:01 编辑
GUICtrlRead
读取指定控件的状态或相关数据.
GUICtrlRead ( 控件ID [, 高级] ) 参数 控件ID 控件标识符(控件ID),可由GUICtrlCreate...函数的返回值获得.
普通模式看附带的帮助就有
至于高级模式
呵呵,自带的帮助文件没有的:
高级 [可选参数] 返回控件的扩展信息. 0 = (默认) 返回控件的状态或者数据. 1 = 返回控件的扩展信息 (参考 注意 部分).
注意/说明
在'高级'模式的返回值包含控件的附加值.(见下面).
注意: 不是所有的已知控件都有附加值可用!
类型附加值Checkbox, Radio控件的文本.Menu, MenuItem控件的文本.TreeViewTreeViewItem 中当前选中的文本.TreeViewItemTreeViewItem 的文本.ListViewItem如果在高级模式中用 $LVS_EX_CHECKBOXES 扩展样式时,返回 ListViewItem 的选中状态. Tab被选择的标签项目的控件ID
由于复选框, 单选框控件的一些状态能返回 $GUI_FOCUS 和 $GUI_CHECKED ,因此可以使用 BitAnd(GUICtrlRead($Item),$GUI_CHECKED) 测试控件是否被选中.
由于 Listview 项目的一些状态能返回 $GUI_CHECKED 和 $GUI_UNCHECKED ,(仅在 listview 控件有 LVS_EX_CHECKBOXES-扩展样式与使用高级模式时) . 因此可以使用 BitAnd(GUICtrlRead($Item),$GUI_CHECKED) 测试项目是否被选中.
由于 Treeview 项目的一些状态能返回 $GUI_FOCUS, $GUI_EXPAND 与 $GUI_CHECKED, $GUI_UNCHECKED (仅当 treeview 控件有 TVS_CHECKBOXES-样式时). 因此可以使用 BitAnd(GUICtrlRead($Item),$GUI_CHECKED) 测试项目是否被选中.
解决代码为:
If GUICtrlRead($drivers)=1
Then MsgBox(64,"复选框实例",GUICtrlRead($drivers,1)&"被中!")
Else
MsgBox(64,"复选框实例",GUICtrlRead($drivers,1)&"未被中!")
EndIf
本帖最后由 顽固不化 于 2009-7-8 21:03 编辑
在实际使用时,我是直接读取它的值,不管是复选还是单选,被选了的返回值就是1,其他值就是没被选中。
更书面化的判断,使用bitAND函数,按位比较读取值和GUI默认值。比如:
if BitAND(GUICtrlRead($Radio1),$GUI_CHECKED) Then GUICtrlSetData($Input1,"选中1")
$driver是控件的唯一ID值,别指望它是一个字符串。要显示字符串需用高级模式:
If GUICtrlRead($drivers)=1 Then
MsgBox(64,"复选框实例",Guictrlread($drivers,1)&"被中!")
Else
MsgBox(64,"复选框实例",Guictrlread($drivers,1)&"未被中!")
EndIf
页:
[1]