case 发表于 2010-11-30 17:19:50

[已解决]如何确定复选框是选中的哪一个?

本帖最后由 case 于 2010-12-2 23:13 编辑

如图:


不知道怎么才能确定选中的哪一个?要是手动的改变了,又怎么确定选中的哪一个昵?
控件我已 标注

这是一个分区软件,就是DISKGEN里的快速分区工具
说说我想达到的效果吧,程序写不来,只有用 文字 来表达了

运行一个判断循环
首先判断选中的是几个分区(比如说默认的是5个分区)
       然后就XXXX
当手动改变了(比如改成4个分区或6个分区......)
      判断出"手动"选中的哪一个选项
       然后就XXX
一直到XX窗口出现的时候就退出这个循环

我刚刚接触AU3.还希望大家来帮帮忙啊!

KLU3K 发表于 2010-11-30 18:38:41

本帖最后由 KLU3K 于 2010-11-30 18:42 编辑

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 293, 150, -1, -1)
$Radio1 = GUICtrlCreateRadio("Radio1", 14, 18, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Radio2 = GUICtrlCreateRadio("Radio2", 12, 48, 113, 17)
$Radio3 = GUICtrlCreateRadio("Radio3", 172, 20, 113, 17)
$Radio4 = GUICtrlCreateRadio("Radio4", 172, 48, 113, 17)
$Combo1 = GUICtrlCreateCombo("", 176, 88, 65, 25, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "1|2|3|4|5", "1")
GUICtrlSetState(-1, $GUI_DISABLE)
$Radio5 = GUICtrlCreateRadio("自定义", 12, 92, 113, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Radio1
                        MsgBox(0, "Debug", "1")
                Case $Radio2
                        MsgBox(0, "Debug", "2")
                Case $Radio3
                        MsgBox(0, "Debug", "3")
                Case $Radio4
                        MsgBox(0, "Debug", "4")
                Case $Radio5
                        GUICtrlSetState($Combo1, $GUI_ENABLE)
                Case $Combo1
                        $val = GUICtrlRead($Combo1)
                        MsgBox(0, "Debug", $val)
        EndSwitch
WEnd

记得给我评分啊!缺钱!嘿嘿

afan 发表于 2010-11-30 19:24:37

本帖最后由 afan 于 2010-11-30 19:56 编辑

Local $Title1 = '快速分区工具窗口标题', $Title2 = 'XX窗口标题', $iComboBox = 'ComboBox1' ;这里的值都需自行设置
Local $x, $xx
Do
        For $i = 3 To 7
                If ControlCommand($Title1, '分区数目', 'Button' & $i, 'IsChecked', '') Then
                        If $i = 7 Then
                                $x = ControlCommand($Title1, '分区数目', $iComboBox, 'GetCurrentSelection', '')
                        Else
                                $x = $i
                        EndIf
                        ExitLoop
                EndIf
        Next
        If $x <> $xx And Not $xx Then
                MsgBox(0, '初始分区数目:', $x)
                $xx = $x
        ElseIf $xx And $x <> $xx Then
                MsgBox(0, '分区数目已改变:', $x)
                $xx = $x
        EndIf
        Sleep(100)
Until WinExists($Title2, '')
MsgBox(0, $Title2 & ' 出现', '当前分区数目:' & $x)

飘云 发表于 2010-11-30 21:32:40

A版V5,我也是这么想的,嘿嘿

case 发表于 2010-11-30 22:01:53

很谢谢大家的帮助,我得好好理解一下!

qq123123 发表于 2010-11-30 22:58:02

他们搞的复杂了

afan 发表于 2010-11-30 23:25:15

他们搞的复杂了
qq123123 发表于 2010-11-30 22:58 http://www.autoitx.com/images/common/back.gif


    你有稍微简单一丁点的方法吗?前提是满足LZ的要求~ 请看清LZ的问题后再回帖。
页: [1]
查看完整版本: [已解决]如何确定复选框是选中的哪一个?