Что нового

GUI пролистование на следущую страницу

maxd2007

Новичок
Сообщения
89
Репутация
0
Помогите пожалуйста никак не могу понять можно ли сделать, интерфейс таким образом что бы при нажатии кнопки "Далее" пролистывалось на другую страницу, пример кода:
Код:
$Form1 = GUICreate("WebUpdater", 545, 366, 343, 158)
$Pic1 = GUICtrlCreatePic("24000.bmp", 16, 24, 121, 281)
$Label1 = GUICtrlCreateLabel("Выберите устройство для проверки наличия обновлений.", 152, 40, 296, 17)
GUICtrlCreateGroup("Параметры устройства", 182, 96, 263, 145)
$Label3 = GUICtrlCreateLabel("Если устройства нет в приведенном ниже", 192, 120, 218, 17)
$Label4 = GUICtrlCreateLabel("списке, подключите его к компьютеру и", 192, 136, 209, 17)
$Label5 = GUICtrlCreateLabel('включите, после чего щелкните "Найти ', 192, 152, 208, 17)
$Label6 = GUICtrlCreateLabel('устройство".', 192, 168, 69, 17)
$Button1 = GUICtrlCreateButton("Найти устройство", 264, 184, 113, 25)
$Label7 = GUICtrlCreateLabel("Устройство:", 192, 216, 67, 17)
$Label8 = GUICtrlCreateLabel('Нажмите "Далее", чтобы проверить наличие обновлений для', 152, 248, 317, 17)
$Label9 = GUICtrlCreateLabel("выбранного устройства.", 152, 264, 128, 17)
$Button2 = GUICtrlCreateButton("< Назад", 300, 328, 73, 25)
$Button3 = GUICtrlCreateButton("Далее >", 375, 328, 73, 25)
$Button4 = GUICtrlCreateButton("Отмена", 460, 328, 73, 25)
$idCombo_firmware2 = GUICtrlCreateCombo ("", 260, 212, 180)
GUICtrlSetData($idCombo_firmware2, _ArrayToString($arraySD, "|", 1, UBound($arraySD, 1) / 2) )

GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button4
			Exit
	EndSwitch
WEnd
во вложении скрины того как хотелось бы сделать, т.е 1 страница, нажал далее, вторая страница и что бы это было реализовано одним окном, подскажите в какую сторону смотреть (если такое вообще возможно)
 

Вложения

  • 1.png
    1.png
    39.8 КБ · Просмотры: 5
  • 2.png
    2.png
    41.2 КБ · Просмотры: 6

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Вы можете использовать дочерние окна
Код:
#include <MsgBoxConstants.au3>
#include <GUIConstants.au3>

Global $iGUIW = 400, $iGUIH = 400, $aMsg, $hParent, $hChild1, $hChild2, $hChild3, _
		$iBtnNext1, $iBtnPrev2, $iBtnNext2, $iBtnPrev3, _
		$iBtnFindDevice, $iBtnTest2, $iBtnTest3, $iBtnCancel

$hParent = GUICreate("Пример", $iGUIW, $iGUIH)
$iBtnCancel = GUICtrlCreateButton("Отмена", 260, 365, 100, 25)

$hChild1 = GUICreate("", $iGUIW, $iGUIH, 0, 0, $WS_CHILD, -1, $hParent)
GUICtrlCreateButton("Назад", 40, 365, 100, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
$iBtnNext1 = GUICtrlCreateButton("Далее", 150, 365, 100, 25)
GUICtrlCreateLabel("Выберите устройство для проверки наличия обновлений", 0, 10, $iGUIW, -1, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlCreateGroup("Параметры устройства", 75, 40, 250, 185)
GUICtrlCreateLabel("Если устройства нет в приведенном ниже" & @CRLF & "списке, подключите его к компьютеру и" & @CRLF & _
		'включите, после чего щелкните "Найти ' & @CRLF & 'устройство".', 85, 60)
$iBtnFindDevice = GUICtrlCreateButton("Найти устройство", 85, 120, 120, 25)
GUICtrlCreateLabel("Устройство:", 85, 155, 65, -1, BitOR($SS_RIGHT, $SS_CENTERIMAGE))
GUICtrlCreateCombo("", 155, 155, 150, 20)
GUICtrlCreateLabel('Нажмите "Далее", чтобы проверить наличие' & @CRLF & "обновлений для выбранного устройства.", 85, 185)
GUISetState()

$hChild2 = GUICreate("", $iGUIW, $iGUIH, 0, 0, $WS_CHILD, -1, $hParent)
$iBtnPrev2 = GUICtrlCreateButton("Назад", 40, 365, 100, 25)
$iBtnNext2 = GUICtrlCreateButton("Далее", 150, 365, 100, 25)
GUICtrlCreateLabel("Страница 2", 10, 10)
$iBtnTest2 = GUICtrlCreateButton("Страница 2", 10, 40, 100, 25)

$hChild3 = GUICreate("", $iGUIW, $iGUIH, 0, 0, $WS_CHILD, -1, $hParent)
GUICtrlCreateButton("Далее", 150, 365, 100, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
$iBtnPrev3 = GUICtrlCreateButton("Назад", 40, 365, 100, 25)
GUICtrlCreateLabel("Страница 3", 10, 10)
$iBtnTest3 = GUICtrlCreateButton("Страница 3", 10, 40, 100, 25)

GUISwitch($hParent)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE, $iBtnCancel
			If MsgBox($MB_YESNO + $MB_ICONQUESTION + $MB_TOPMOST, "Пример", "Вы действительно хотите закрыть пример?", 0, $hParent) = $IDYES Then Exit
		Case $iBtnNext1
			GUISetState(@SW_HIDE, $hChild1)
			GUISetState(@SW_SHOW, $hChild2)
		Case $iBtnPrev2
			GUISetState(@SW_HIDE, $hChild2)
			GUISetState(@SW_SHOW, $hChild1)
		Case $iBtnNext2
			GUISetState(@SW_HIDE, $hChild2)
			GUISetState(@SW_SHOW, $hChild3)
		Case $iBtnPrev3
			GUISetState(@SW_HIDE, $hChild3)
			GUISetState(@SW_SHOW, $hChild2)
		Case $iBtnFindDevice
			MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Пример", "Найти устройство", 0, $hParent)
		Case $iBtnTest2
			MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Пример", "Страница 2", 0, $hParent)
		Case $iBtnTest3
			MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Пример", "Страница 3", 0, $hParent)
	EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Вариант с общими кнопками управления
Код:
#include <GuiConstants.au3>

; главное окно
$Form1 = GUICreate("WebUpdater", 545, 366)
$Pic1 = GUICtrlCreatePic("24000.bmp", 16, 24, 121, 281)
$Button2 = GUICtrlCreateButton("< Назад", 300, 328, 73, 25)
$Button3 = GUICtrlCreateButton("Далее >", 375, 328, 73, 25)
$Button4 = GUICtrlCreateButton("Отмена", 460, 328, 73, 25)
GUICtrlSetState($Button2, $GUI_DISABLE)
GUISetState(@SW_SHOW)

; страница 1
$Page1 = GUICreate("", 410, 310, 130, 5, $WS_CHILD, -1, $Form1)
$Label0 = GUICtrlCreateLabel("Страница 1: приветствие", 22, 40, 296, 17)
GUISetState(@SW_SHOW)

; страница 2
$Page2 = GUICreate("", 410, 310, 130, 5, $WS_CHILD, -1, $Form1)
$Label1 = GUICtrlCreateLabel("Выберите устройство для проверки наличия обновлений.", 22, 40, 296, 17)
GUICtrlCreateGroup("Параметры устройства", 52, 96, 263, 145)
$Label3 = GUICtrlCreateLabel("Если устройства нет в приведенном ниже", 62, 120, 218, 17)
$Label4 = GUICtrlCreateLabel("списке, подключите его к компьютеру и", 62, 136, 209, 17)
$Label5 = GUICtrlCreateLabel('включите, после чего щелкните "Найти ', 62, 152, 208, 17)
$Label6 = GUICtrlCreateLabel('устройство".', 62, 168, 69, 17)
$Button1 = GUICtrlCreateButton("Найти устройство", 134, 184, 113, 25)
$Label7 = GUICtrlCreateLabel("Устройство:", 62, 216, 67, 17)
$Label8 = GUICtrlCreateLabel('Нажмите "Далее", чтобы проверить наличие обновлений для', 22, 248, 317, 17)
$Label9 = GUICtrlCreateLabel("выбранного устройства.", 22, 264, 128, 17)
$idCombo_firmware2 = GUICtrlCreateCombo ("", 130, 212, 180)
;~ GUICtrlSetData($idCombo_firmware2, _ArrayToString($arraySD, "|", 1, UBound($arraySD, 1) / 2) )
GUISetState(@SW_SHOW)

; страница 3
$Page3 = GUICreate("", 410, 310, 130, 5, $WS_CHILD, -1, $Form1)
$Label0 = GUICtrlCreateLabel("Страница 3: завершение", 22, 40, 296, 17)
GUISetState(@SW_SHOW)

; массив страниц и индекс текущей
Global $aPages[] = [3, $Page1, $Page2, $Page3], $Current = 1

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $Button4
            Exit
        Case $Button1
            ; $arraySD = _InsertSDCardNew ()
            ; _ArrayDisplay ($arraySD)
            ; GUICtrlSetData($idCombo_firmware2, _ArrayToString($arraySD, "|", 1, UBound($arraySD, 1) / 2))
            MsgBox (0,"", "Поиск устройства", 0, $Form1)
        Case $Button2
            $Current -= 1
            GUICtrlSetData($Button3, "Далее >")
            $_ = ($Current = 1) ? GUICtrlSetState($Button2, $GUI_DISABLE) : GUICtrlSetState($Button2, $GUI_ENABLE)
            DllCall("user32.dll", "bool", "BringWindowToTop", "hwnd", $aPages[$Current])
        Case $Button3
            $Current += 1
            If $Current > $aPages[0] Then Exit MsgBox(0, "", "Установка", 0, $Form1)
            GUICtrlSetState($Button2, $GUI_ENABLE)
            $_ = ($Current = $aPages[0]) ? GUICtrlSetData($Button3, "Готово") : GUICtrlSetData($Button3, "Далее >")
            DllCall("user32.dll", "bool", "BringWindowToTop", "hwnd", $aPages[$Current])
    EndSwitch
WEnd
 
Верх