Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Много непоняток в коде, например, зачем там GUISetState(@SW_DISABLE) и проверка активности окна?
И что за AutoItConstants.au3?

Я бы делал так:

Код: Выделить весь код
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Opt("TrayIconDebug", 1) ;0 - без сведений, 1 - отладочные сведения
Opt("TrayIconHide", 0) ;0 - отображать, 1 - скрыть
Opt("GUICloseOnESC", 1) ;0 = При нажатии ESC не высылать сообщение $GUI_EVENT_CLOSE.
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Global $Title = "TEST"
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$hGUI = GUICreate($Title, 265, 355, -1, -1, $WS_SIZEBOX + $WS_SYSMENU + $WS_MINIMIZEBOX)
$Button2 = GUICtrlCreateButton("DELETE", 70, 260, 120, 22)
$Close = GUICtrlCreateButton("ESC", 70, 300, 120, 22)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$id1 = GUICtrlCreateCheckbox("ID 1", 18, 50, -1, -1)
$id2 = GUICtrlCreateCheckbox("ID 2", 18, 70, -1, -1)
$id3 = GUICtrlCreateCheckbox("ID 3", 18, 90, -1, -1)
$id4 = GUICtrlCreateCheckbox("ID 4", 18, 110, -1, -1)
$id5 = GUICtrlCreateCheckbox("ID 5", 18, 130, -1, -1)
$id6 = GUICtrlCreateCheckbox("ID 6", 18, 150, -1, -1)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUISetState()
While 1
    $iMsg = GUIGetMsg()

    Switch $iMsg
        Case $Close, $GUI_EVENT_CLOSE
            Exit
            ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        Case $Button2
            $Ask = MsgBox(256 + 32 + 4 + 262144, "", "TEST", 0, $hGUI)

            If $Ask <> 6 Then
                For $iID = $id1 To $id6
                    GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE))
                Next

                ContinueLoop
            EndIf

            GUISetState(@SW_HIDE)
            $bChecked = False

            For $iID = $id1 To $id6
                ; хотя бы один отмечен
                If _Checked($iID) Then
                    $bChecked = True

                    MsgBox(4096 + 64, "", GUICtrlRead($iID, 1), 1, $hGUI)
                    GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE))
                EndIf
            Next

            ; все пустые
            If Not $bChecked Then
                MsgBox(4096 + 64, "", "UNCHECKED", 1, $hGUI)
            Else
                MsgBox(4096 + 64, "", "END", 1, $hGUI)
            EndIf

            GUISetState(@SW_SHOW)
    EndSwitch
WEnd
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Func _Checked($idControlID)
    Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_Checked

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:23, 02-05-2016 | #11