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
|