;~ 一个复选框的简单实例 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的数组,用来储存即将建立的5个复选框控件id
$GUI = GUICreate("复选框参考实例", 235, 180);GUI创建,并返回窗口句柄到$GUI变量中
GUISetBkColor(0xE0FFFF)
$check[0] = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20);开始控件创建,控件id将返回到前面的变量中
$check[1] = GUICtrlCreateCheckbox("CHECKBOX 2", 10, 40, 120, 20)
$check[2] = GUICtrlCreateCheckbox("CHECKBOX 3", 10, 70, 120, 20)
$check[3] = GUICtrlCreateCheckbox("CHECKBOX 4", 10, 100, 120, 20)
$check[4] = 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[4];当GUI上的消息是对$check[4]控件操作时,运行以下代码
;判断$check[4]是否选中,并对label进行修改
If BitAND(GUICtrlRead($check[4]), $GUI_CHECKED) Then
GUICtrlSetData($label, "CHECKBOX 5被选中了!")
Else
GUICtrlSetData($label, "CHECKBOX 5等待选中...")
EndIf
EndSwitch
WEnd
写了个简单的例子,也许是你想要的~