嗯,的确是这样,创建一些其他控件,13#的代码可能就不适用了。关键在于那些CheckBox是集中创建的。 回复afan
你意思是说$Checkbox = 后面不是这个复选框,那用你们的就备备了,我的嘛,已手动确定好的 ...
绿色风 发表于 2010-12-7 21:00 http://www.autoitx.com/images/common/back.gif
不是,我是指比如在创建每个复选框时还创建了别的控件,比如按钮… 呵呵,谢谢多位高手,但还是没解决,GUICtrlCreateListViewItem 项不知道怎么判断 回复 8# 水木子
帮解释一下,代码的两个地方:
;这样也可以3和6是怎么来的. 这里的 $I-3怎么来的.
如果是N个CHECKBOX 就是 3 TO N+2 个.#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $avArray = ['150', '300', '500','1000']
Local $nNumber
GUICreate("Form1", 300, 200)
$Checkbox1 = GUICtrlCreateCheckbox($avArray & 'MB', 80, 30, 100, 17)
$Checkbox2 = GUICtrlCreateCheckbox($avArray & 'MB', 80, 80, 100, 17)
$Checkbox3 = GUICtrlCreateCheckbox($avArray & 'MB', 80, 130, 100, 17)
$Checkbox4 = GUICtrlCreateCheckbox($avArray & 'MB', 80, 160, 100, 17)
$Label1 = GUICtrlCreateLabel('0 MB', 200, 160, 100, 33)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case - 3
Exit
Case $Checkbox1 To $Checkbox4
;~ For $i = $Checkbox1 To $Checkbox4
For $i = 3 To 6 ;这样也可以3和6是怎么来的. 这里的 $I-3怎么来的.
If BitAND(GUICtrlRead($i), $GUI_CHECKED) Then $nNumber += $avArray[$i - 3]
Next
GUICtrlSetData($Label1, $nNumber & ' MB')
$nNumber = 0
EndSwitch
WEnd 本帖最后由 水木子 于 2010-12-13 09:49 编辑
回复 19# nbmpe
3 To 6 、这里的3是怎么来的!因为Au3控件标识符(控件ID)是从3开始的!
比如:咱创建一个GUI、上面有许多按钮,那么第一个按钮的ID就等于3、第二个是4、依此类推!
$i - 3 就容易理解了,因为循环时变量$i的取值范围是 3 到 6、那么$i - 3 就应该依次等于 0、1、2、3、……正好就对应了之前所申明的数组元素。
其实这个问题我那方法也是很浪费效率的,还是afan前辈和P版的方法可取!我那个就带过吧!
因为每次都去循环检查,没那个必要,从效率方面来说也是比较差的,不值得学习! 回复 20# 水木子
都看懂了. 谢谢了!
这几个都收着,用的时候可灵活选择. 先留下脚印 明天有时间再来研究 好好学习.... 这个贴子学到不到东西,收藏了
页:
1
[2]