Что нового

Как поставить CheckBox на дочернем окне?

agikon

Знающий
Сообщения
789
Репутация
17
столкнулся с тем что чекбоксы не работают на дочернем окне. то есть если чекбокс на главном окне то норм, а если на под-окне относительно главного(или ещё можно назвать дочернего) то даже не хочет компилировать.
Вобщем я так понимаю что аутоит его ищет на главном а на главном его нет.
Вобщем подскажите пожалуйста как это исправить.

Код:
#include <GuiConstantsEx.au3>
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>

$GUI  = GUICreate("PC10")  ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$ontop = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $ontop)

GUISetState()

WinSetOnTop ($GUI, "", 1 )
; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $nButton1
            _galochka()

        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            NewWindow()

        Case $ontop
                If BitAND(GUICtrlRead($ontop), $GUI_CHECKED) then
                    WinSetOnTop ($GUI, "", 1 )
                Else
                    WinSetOnTop ($GUI, "", 0 )
                EndIf
    EndSwitch
Wend

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    GUISetState()
	$CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    Do
    until GUIGetMsg() = -3

    GUIDelete($GUI2)
EndFunc


Func _galochka()
	If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
	MsgBox(64, 'Info', 'задача выполнена.')
	endif
EndFunc
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Чтобы переменную($CheckBox) использовать во многих функциях, надо её объявить глобальной (через Global):
Код:
#include <GuiConstantsEx.au3>
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>

Global $CheckBox

$GUI  = GUICreate("PC10")  ; will create a dialog box that when displayed is centered
$nButton1 = GUICtrlCreateButton('пример 1', 20, 50, 110, 30)
$nButton2 = GUICtrlCreateButton('пример 2', 20, 80, 110, 30)
$nButton3 = GUICtrlCreateButton('Окно', 20, 110, 110, 30)
$ontop = GUICtrlCreateCheckbox(" окно всегда наверху", 35, 310, 150, 20)
GUICtrlSetState(-1, $ontop)

GUISetState()

WinSetOnTop ($GUI, "", 1 )
; Run the GUI until the dialog is closed
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $nButton1
            _galochka()

        Case $nButton2
            MsgBox(64, 'Info', 'пример 2', 0, $GUI)
        Case $nButton3
            NewWindow()

        Case $ontop
                If BitAND(GUICtrlRead($ontop), $GUI_CHECKED) then
                    WinSetOnTop ($GUI, "", 1 )
                Else
                    WinSetOnTop ($GUI, "", 0 )
                EndIf
    EndSwitch
Wend

Func NewWindow()
    $GUI2 = GUICreate('New window', 400, 300, -1, -1, -1, -1, $GUI)
    GUISetState()
    $CheckBox = GUICtrlCreateCheckbox("галочка", 15, 120, 340, 20)
    Do
    until GUIGetMsg() = -3

    GUIDelete($GUI2)
EndFunc


Func _galochka()
    If BitAND(GUICtrlRead($CheckBox), $GUI_CHECKED) Then MsgBox(64, 'Info', 'задача выполнена.')
EndFunc
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot
спасибо, теперь понял.
 
Верх