Допустим установлена галочка на CHECKBOX 1, тогда с CHECKBOX 1.1 галочка снимается если она там была. Если устанавливаем на CHECKBOX 1.1, то с CHECKBOX 1 снимается.
Также CHECKBOX 2 - CHECKBOX 2.2
и так далее в случае присутствия следующих CHECKBOX .....
Код:
Код: Выделить всё
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.14.2
#ce ----------------------------------------------------------------------------
#include
Opt("TrayIconDebug", 1)
Opt("TrayIconHide", 0)
Opt("GUICloseOnESC", 1)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Beep(1000, 150)
GUICreate("TEST", 440, 440)
$nInst = GUICtrlCreateButton ("Run", 7, 410, 80, 22)
$Close = GUICtrlCreateButton ("Exit", 350, 410, 80, 22)
$icon = GUICtrlCreateIcon ("@ScriptDir & '\name.exe",0, 29,375,32,32)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUICtrlCreateGroup("Disable", 7, 15, 426, 170)
GUICtrlSetFont(-1, -1, 700)
DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0)
GUICtrlSetColor(-1, 0x0000FF)
$id1 = GUICtrlCreateCheckbox ("CHECKBOX 1", 12, 40, -1, -1)
$id2 = GUICtrlCreateCheckbox ("CHECKBOX 2", 12, 60, -1, -1)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUICtrlCreateGroup("Restore", 7, 200, 426, 170)
GUICtrlSetFont(-1, -1, 700)
DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0)
GUICtrlSetColor(-1, 0x0000FF)
$id11 = GUICtrlCreateCheckbox ("CHECKBOX 1.1", 12, 230, -1, -1)
$id12 = GUICtrlCreateCheckbox ("CHECKBOX 2.2", 12, 250, -1, -1)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUISetState()
Do
$msg = GUIGetMsg()
If $msg = $Close Then Exit
If $msg = $nInst Then
GUISetState(@SW_MINIMIZE);@SW_MINIMIZE
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Отключить и остановить^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If _Checked($id1) Then
MsgBox(4096+48, '', 'CHECKBOX 1', 1)
Endif
If _Checked($id2) Then
MsgBox(4096+48, '', 'CHECKBOX 2', 1)
Endif
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^По умолчанию^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If _Checked($id11) Then
MsgBox(4096+48, '', 'CHECKBOX 1.1', 1)
Endif
If _Checked($id12) Then
MsgBox(4096+48, '', 'CHECKBOX 2.2', 1)
Endif
GUISetState(@SW_RESTORE)
If $msg = $GUI_EVENT_CLOSE Then Exit
EndIf
Until $msg = -3
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Func _Checked($idControlID)
Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_Checked