找回密码
 加入
搜索
查看: 1450|回复: 4

复选框的值改如何设定???

[复制链接]
发表于 2009-7-7 23:40:28 | 显示全部楼层 |阅读模式
本帖最后由 天堂泪吻泪 于 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楼,真是感谢万分!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-7-8 07:23:19 | 显示全部楼层
你是想读控件吧
guictrlread就行了
发表于 2009-7-8 11:49:32 | 显示全部楼层
返回的只是控件ID,用窗口信息工具看一下你就明白了
发表于 2009-7-8 18:56:28 | 显示全部楼层
本帖最后由 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 20:51:19 | 显示全部楼层
本帖最后由 顽固不化 于 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
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 23:21 , Processed in 0.079588 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表