tsdeyl 发表于 2009-8-1 22:41:15

谁能帮忙GUI复选框的例子

本帖最后由 tsdeyl 于 2009-8-2 11:43 编辑

包括判断是否选中
做一个GUI
上面一个复选框
一个选中按扭   一个取消按扭   一个执行按扭
帮忙给个例子吧
本人新手看别人的例子没有特别针对这个的
希望谁有空帮忙写下
十分感谢了

sunny617 发表于 2009-8-1 22:43:14

学会搜索。。。。例子大把

tsdeyl 发表于 2009-8-1 22:46:17

2# sunny617


刚才下了 但是因为是新手
别人没有特别真对这个写的
添加了太多别的功能
而且没有相关的注释
看了一下午也没弄明白

afan 发表于 2009-8-1 23:41:27

本帖最后由 afan 于 2009-8-2 00:41 编辑

写了个简单的,带判断:
#include <GUIConstantsEx.au3>

GUICreate("复选框测试", 300, 200)
Dim $Checkbox, $cb
$Checkbox = GUICtrlCreateCheckbox("复选框1", 20, 20, 120, 20)
$Checkbox = GUICtrlCreateCheckbox("复选框2", 20, 50, 120, 20)
$Checkbox = GUICtrlCreateCheckbox("复选框3", 20, 80, 120, 20)
$Button = GUICtrlCreateButton('查看复选框', 70, 130, 150, 25)
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button
                        For $i = 1 To 3
                                If BitAND(GUICtrlRead($Checkbox[$i]), $GUI_CHECKED) Then
                                        $cb[$i] = '复选框 ' & $i & ' 已选中'
                                Else
                                        $cb[$i] = '复选框 ' & $i & ' 未选中'
                                EndIf
                        Next
                        MsgBox(0, '状态:', $cb & @CRLF & $cb & @CRLF & $cb)
        EndSwitch
WEnd

298311657 发表于 2009-8-2 00:45:58

;~ 一个复选框的简单实例   By 298311657
;~ www.autoitx.com
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Opt('MustDeclareVars', 1);设定必须先声明所有变量

Local $GUI, $Button_1, $Button_2, $Button_3, $Button_4, $msg, $label, $checked;需要用到的变量先进行定义
Local $check;定义一个长度5的数组,用来储存即将建立的5个复选框控件id
$GUI = GUICreate("复选框参考实例", 235, 180);GUI创建,并返回窗口句柄到$GUI变量中
GUISetBkColor(0xE0FFFF)
$check = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20);开始控件创建,控件id将返回到前面的变量中
$check = GUICtrlCreateCheckbox("CHECKBOX 2", 10, 40, 120, 20)
$check = GUICtrlCreateCheckbox("CHECKBOX 3", 10, 70, 120, 20)
$check = GUICtrlCreateCheckbox("CHECKBOX 4", 10, 100, 120, 20)
$check = GUICtrlCreateCheckbox("CHECKBOX 5", 10, 130, 120, 20)
$label = GUICtrlCreateLabel("CHECKBOX 5等待选中...", 10, 160, 215, 12, $SS_CENTER);一个文字标签控件,设置文字居中显示
GUICtrlSetColor(-1, 0xff0000);设置lable的文字为红色
$Button_1 = GUICtrlCreateButton("全部选中", 150, 20, 75)
$Button_2 = GUICtrlCreateButton("取消全选", 150, 50, 75)
$Button_3 = GUICtrlCreateButton("确定", 150, 80, 75)
$Button_4 = GUICtrlCreateButton("退出", 150, 110, 75)
GUISetState();显示GUI

While 1;while循环,这里是一个无限循环
        $msg = GUIGetMsg();把GUI上的消息返回到$msg变量中
        Switch $msg;使用Switch关键字进行有条件的判断
                Case $GUI_EVENT_CLOSE, $Button_4;$msg的值等于$GUI_EVENT_CLOSE或$Button_4时退出
                        Exit
                Case $Button_1;$msg的值等于$Button_1时进行全选
                        For $i = 0 To 4
                                GUICtrlSetState($check[$i], $GUI_CHECKED);for循环选择所有复选框
                        Next
                Case $Button_2;$msg的值等于$Button_2时取消全选
                        For $i = 0 To 4
                                GUICtrlSetState($check[$i], $GUI_UNCHECKED);for循环取消所有复选框
                        Next
                Case $Button_3;$msg的值等于$Button_3时获取当前选中的复选框
                        $checked = '';先把$checked赋予一次空值,这样做是防止此前判断过的值被再次利用,造成判断错误
                        ;依旧是利用for循环判断选中的复选框,若选中的话则用ControlGetText函数根据复选框控件id获取它的说明文字
                        For $i = 0 To 4
                                ;GUICtrlRead读取复选框状态
                                ;BitAND进行与运算
                                ;ControlGetText读取复选框说明文字
                                If BitAND(GUICtrlRead($check[$i]), $GUI_CHECKED) Then $checked &= ControlGetText($GUI, "", $check[$i]) & @LF;$checked变量与自身进行连接

                                ;下面是不使用与运算的判断是否选中的方法
                                ;If GUICtrlRead($check[$i]) = $GUI_CHECKED Then $checked &= ControlGetText($GUI, "", $check[$i]) & @LF
                        Next
                        If $checked = '' Then
                                ;$checked为空的时候进行未选中提示
                                MsgBox(0, '', '当前没有任何复选框被选中!', 5, $GUI)
                        Else
                                ;$checked不为空的时候进行选中提示
                                MsgBox(0, '', '被选中的复选框为' & @LF & $checked, 5, $GUI)
                        EndIf
                Case $check;当GUI上的消息是对$check控件操作时,运行以下代码
                        ;判断$check是否选中,并对label进行修改
                        If BitAND(GUICtrlRead($check), $GUI_CHECKED) Then
                                GUICtrlSetData($label, "CHECKBOX 5被选中了!")
                        Else
                                GUICtrlSetData($label, "CHECKBOX 5等待选中...")
                        EndIf
        EndSwitch
WEnd写了个简单的例子,也许是你想要的~

tsdeyl 发表于 2009-8-2 00:59:10

写了个简单的,带判断:
#include

GUICreate("复选框测试", 300, 200)
Dim $Checkbox, $cb
$Checkbox = GUICtrlCreateCheckbox("复选框1", 20, 20, 120, 20)
$Checkbox = GUICtrlCreateCheckbox ...
afan 发表于 2009-8-1 23:41 http://www.autoitx.com/images/common/back.gif
我不太清楚这个是什么意思$GUI_CHECKED

tsdeyl 发表于 2009-8-2 01:08:21

;~ 一个复选框的简单实例   By 298311657
;~ www.autoitx.com
#include
#include
Opt('MustDeclareVars', 1);设定必须先声明所有变量

Local $GUI, $Button_1, $Button_2, $Button_3, $Button_4, $msg, $l ...
298311657 发表于 2009-8-2 00:45 http://www.autoitx.com/images/common/back.gif
谢谢啊
写的很详细了
对我这样的新手帮助很大啊
感谢你

afan 发表于 2009-8-2 01:41:36

本帖最后由 afan 于 2009-8-2 01:43 编辑


我不太清楚这个是什么意思$GUI_CHECKED
tsdeyl 发表于 2009-8-2 00:59 http://www.autoitx.com/images/common/back.gif

晕,白忙。。。特意写简单容易看,结果你还是要字多的

tsdeyl 发表于 2009-8-2 01:45:56



晕,白忙。。。特意写简单容易看,结果你还是要字多的
afan 发表于 2009-8-2 01:41 http://www.autoitx.com/images/common/back.gif
不是啊
我就是要简单的呢
但是人家写了那么长而且都带有注释
对我帮助也很大啊
所以你们两个都要感谢呢

tsdeyl 发表于 2009-8-2 01:48:44

还有啊$GUI_CHECKED这个我在帮助里怎么找不到呢

tsdeyl 发表于 2009-8-2 01:49:43

别的我都看懂了只有这个是常量吧?
干什么用的不太清楚哦
是判断返回值的么

tsdeyl 发表于 2009-8-2 01:57:04

要方便了能加下你QQ么?
我对这个还挺感兴趣的
但只是个人爱好
太业余了
如果不怕麻烦的话教教我吧
不会打扰你很多时间的
我的QQ335449309

afan 发表于 2009-8-2 02:00:43

11# tsdeyl

$GUI_CHECKED 是控件返回的状态值,代表单选按框钮(Radio)或复选框按钮(Checkbox)被选中
与之相反的是 $GUI_UNCHECKED 未选中

afan 发表于 2009-8-2 02:03:27

12# tsdeyl


我也是新手,不如你加5#的帅哥详聊吧,呵呵

tsdeyl 发表于 2009-8-2 02:08:37

那人估计不爱熬夜哦
那 $cb1 起什么作用哦
页: [1] 2
查看完整版本: 谁能帮忙GUI复选框的例子