Что нового

Как добавить 2 кнопки в GUI

dr.room

Новичок
Сообщения
283
Репутация
0
Всем привет !
Сижу и мучаюсь, пытаясь постичь концепцию GUI :stars:
Подскажите как добавить 2 кнопки: "Ок" и "Продолжить" в одно замечательное GUI особенностью которого есть умение автоприжатия к краю экрана. (пример из справки)
Код:
#include <UserGUI.au3>

Local $aWHXY[4] = [10, 10, 3000, 1900] ; Задаём плохие параметры окна
_SetCoor($aWHXY, 200, 170) ; коррекция с отступом 20 и минимального размера 200 x 170

; Окно создастся видимым
$hGui = GUICreate('My program', $aWHXY[0], $aWHXY[1], $aWHXY[2], $aWHXY[3])
GUISetState()
Do
Until GUIGetMsg() = -3
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Ок
Добавил пояснения и 2 кнопки даже :smile:
Но тут вторая проблема
Не хочет реагировать окно на кнопку закрыть. Я её закоментировал потому что если раскоментировать то скрипт выдавать ошибку начинает :(
Код:
#include <UserGUI.au3>
Local $hGui, $msg, $Input1, $Input2, $Input3, $Input4, $BtnOk, $sText,$rezalt,$BtnProdolgit
Local $textGuiCtrlCreateLabel, $textGuiCtrlCreateLabel_2, $SS_CENTER

Local $aWHXY[4] = [10, 10, 3000, 1900]
_SetCoor($aWHXY, 500, 170)

$hGui = GUICreate('My program', $aWHXY[0], $aWHXY[1], $aWHXY[2], $aWHXY[3])

	$font = ""
	$textGuiCtrlCreateLabel = GUICtrlCreateLabel ('Заголовок ', 80, 8, 680, 27, $SS_CENTER)
	 GUICtrlSetFont($textGuiCtrlCreateLabel,10,700,$font)

	$textGuiCtrlCreateLabel_2 = GUICtrlCreateLabel ('Пояснение ', 10, 30, 480, 17, $SS_CENTER)
	GUICtrlSetFont($textGuiCtrlCreateLabel_2,9,400)

$BtnOk = GUICtrlCreateButton("OK", 160, 115, 90, 36)
$BtnProdolgit = GUICtrlCreateButton("Продолжить", 290, 115, 100, 36)

GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
;~         Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $BtnOk
            MsgBox(0, "Результат", "Нажата кнопка Ок")
						ExitLoop
        Case $BtnProdolgit
            MsgBox(0, "Результат", "Нажата кнопка Продолжить")
						ExitLoop

    EndSwitch
WEnd
 
Сообщения
5
Репутация
0
Так пойдёт?
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <UserGUI.au3>
Opt("GUIOnEventMode", 1)

Local $aWHXY[4] = [10, 10, 3000, 1900] ; Задаём плохие параметры окна
_SetCoor($aWHXY, 200, 170) ; коррекция с отступом 20 и минимального размера 200 x 170

Global $Form1 = GUICreate('My program', $aWHXY[0], $aWHXY[1], $aWHXY[2], $aWHXY[3])
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
Global $BtnOk = GUICtrlCreateButton("OK", 104, 128, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
Global $BtnProdolgit = GUICtrlCreateButton("Продолжить", 104, 88, 75, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = -3


While 1
	Sleep(100)
WEnd

Func Button1Click()

EndFunc

Func Button2Click()

EndFunc

Func Form1Close()
	Exit
EndFunc
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Сергей Викторович
Спасибо
Но не совсем подходит в моём случае. Дело в том, что после нажатия кнопки не достаточно чтобы произошло событие.
[list type=decimal]
[*]Нужно что бы окно завершило работу,

[*]А скрипт продолжил работать в нормальном потоке.
[/list]
Exit - не подойдет: это весь скрипт обрушит. GUIDelete() тоже какая-то специфическая функция. Просто прячет окно, при этом заставляя скрипт чего-то ждать.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
dr.room [?]
Не хочет реагировать окно на кнопку закрыть. Я её закоментировал потому что если раскоментировать то скрипт выдавать ошибку начинает
все это решается элементарно - после прочтения справки и разбора примеров из неё. Справку читать нужно не только русскую, но и к текущей версии языка
Учи язык, пользуйся поиском по форуму, смотри под темами ссылки на сходные темы.
 
Верх