Русское сообщество AutoIt

  • Май 20, 2012, 12:10:09 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Вы новичок? Хотите начать изучение AutoIt и не знаете с чего начать?

Для начала ознакомьтесь с темой Быстрый старт для работы с AutoIt.
Затем осмотрите раздел Инструменты и помощь по AutoIt.

Реклама

Автор Тема: [Элементы GUI] Работа с двумя и более окнами в одном приложении.  (Прочитано 871 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

Mr. Anderson [?]

  • Новичок
  • *
  • Репутация: 2
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 122
  • Версия AutoIt: v3.3.6.0
    • WWW
    • Награды
К сожалению не получается разобраться как работать с такой темой.
Например есть окно:
Код: AutoIt [Выделить]
$Form2 = GUICreate("Окно 1", 322, 94, 243, 563)
$Button1 = GUICtrlCreateButton("Кнопка 1", 8, 8, 89, 25)
$Button2 = GUICtrlCreateButton("Кнопка 2", 104, 8, 89, 25)
$Button3 = GUICtrlCreateButton("Опции", 200, 8, 113, 25)
$Input1 = GUICtrlCreateInput("", 8, 40, 305, 21)
GUISetState(@SW_SHOW)
И окно 2 - Опции:
Код: AutoIt [Выделить]
$Form3 = GUICreate("Опции", 251, 75, 627, 657)
$Label1 = GUICtrlCreateLabel("Опция 1:", 8, 8, 48, 17)
$Label2 = GUICtrlCreateLabel("Опция 2:", 8, 40, 48, 17)
$Input1 = GUICtrlCreateInput("", 56, 8, 105, 21)
$Input2 = GUICtrlCreateInput("", 56, 40, 105, 21)
$Button1 = GUICtrlCreateButton("ОК", 168, 8, 65, 57)
GUISetState(@SW_SHOW)
Как их увязать в одном приложении, что бы по нажатии $Button3 появлялось окно Опций? И что бы при запуске программы сразу не появлилсь опции? Но это, как я понимаю просто GUISetState(@SW_HIDE)?




  Записан
http://www.autoit-vt.ru/ - видео уроки по AutoIt
14.03.2011 обновление http://www.autoit-vt.ru/video-uroki-po-autoit/

HukpoFuJl [?]

  • Осваивающий
  • **
  • Репутация: 26
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 90
  • Версия AutoIt: 3.3.6.1
  • AццkuЙ HukpoFuJl
    • WWW
    • Награды
Да, делаешь при старте GUISetState(@SW_HIDE,$Form3), а при нажатии на кнопку $Button3  GUISetState(@SW_SHOW,$Form3)




  Записан
Хостинг файлов и скриншотов специально созданный для autoit-script.ru:

ynbIpb [?]

  • Продвинутый
  • ***
  • Репутация: 84
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 338
  • Версия AutoIt: 3.3.8.1
    • Награды
Вот нашёл у себя чейто пример:
Код: AutoIt [Выделить]
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
;Global Const $WM_MOVE = 0x0003
$Form1 = GUICreate("Main", 193, 106)
$Button1 = GUICtrlCreateButton("About", 8, 64, 94, 21, $BS_BITMAP)
 $Form1pos = WinGetPos($Form1)
$Form2 = GUICreate("About", 193, 106, $Form1pos[0],$Form1pos[1]+140, BitOR($WS_SYSMENU,$WS_CAPTION, $WS_POPUP), $WS_EX_TOOLWINDOW, $Form1)
 GUICtrlCreateLabel ("Диалог о программе"&@CRLF&"Версия 1.0",5, 5, 185, 25)
GUISetState(@SW_SHOW, $Form1)
 
GUIRegisterMsg($WM_MOVE, "WM_MOVE")
 
While 1
$msg = GUIGetMsg(1); получаем массив информации
    Select
        Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form1 ; если закрытие и от основного окна
            Exit
        Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form2
                GUISetState(@SW_HIDE, $Form2)      
        Case $msg[0] = $Button1
            If Not BitAND(WinGetState($Form2), 2) Then  
                GUISetState(@SW_SHOW, $Form2)
            Else
                GUISetState(@SW_HIDE, $Form2)
            EndIf
    EndSelect
WEnd
 
Func WM_MOVE($hWndGUI, $MsgID, $WParam, $LParam)
    If $hWndGUI = $Form1 Then
        $aParent_Pos = WinGetPos($Form1)
        WinMove($Form2, "", $aParent_Pos[0], $aParent_Pos[1]+140)
    Else
    EndIf
EndFunc




  Записан

HukpoFuJl [?]

  • Осваивающий
  • **
  • Репутация: 26
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 90
  • Версия AutoIt: 3.3.6.1
  • AццkuЙ HukpoFuJl
    • WWW
    • Награды
Да, и желательно при работе с несколькими окнами, при указании GUISetState указывать хэндл окна к которому это применяется... тогда не будет неожиданных казусов ;)


Добавлено: Август 08, 2010, 11:40:38
Вот тебе твои два окна:

Код: AutoIt [Выделить]
$Form2 = GUICreate("Окно 1", 322, 94, 243, 563)
$Button1 = GUICtrlCreateButton("Кнопка 1", 8, 8, 89, 25)
$Button2 = GUICtrlCreateButton("Кнопка 2", 104, 8, 89, 25)
$Button3 = GUICtrlCreateButton("Опции", 200, 8, 113, 25)
$Input1 = GUICtrlCreateInput("", 8, 40, 305, 21)
GUISetState(@SW_SHOW,$Form2)

$Form3 = GUICreate("Опции", 251, 75, 627, 657, -1, -1, $Form2)
$Label1 = GUICtrlCreateLabel("Опция 1:", 8, 8, 48, 17)
$Label2 = GUICtrlCreateLabel("Опция 2:", 8, 40, 48, 17)
$Input1 = GUICtrlCreateInput("", 56, 8, 105, 21)
$Input2 = GUICtrlCreateInput("", 56, 40, 105, 21)
$Button1 = GUICtrlCreateButton("ОК", 168, 8, 65, 57)
GUISetState(@SW_HIDE,$Form3)

While 1
   $msg = GUIGetMsg(1)
   Select
        Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form2
            Exit
        Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form3
                GUISetState(@SW_HIDE, $Form3)      
        Case $msg[0] = $Button3
                GUISetState(@SW_SHOW, $Form3)
    EndSelect
WEnd
 
Поправил код, спасибо kosjachok.
« Последнее редактирование: Август 09, 2010, 14:21:40 от HukpoFuJl, Причина: Объединение сообщений »



  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
CodeWizard - Работа с встроеными окнами сообщений и стандартными диалогами
Инструменты и помощь по AutoIt
SECTOR 9 4145 Последний ответ Декабрь 03, 2009, 11:22:43
от VitAl2013
Одновременная работа двух и более функций
AutoIt для новичков
Александр 25 3636 Последний ответ Октябрь 27, 2009, 09:48:01
от Александр
[Окна, Диалоги] GUIOnEventMode Работа с несколькими окнами
AutoIt для новичков
pvnn 4 1252 Последний ответ Апрель 27, 2010, 11:05:37
от pvnn
Как авторизоваться на одном сайте из разных аккаунтов?
AutoIt для новичков
duxabilii 3 570 Последний ответ Апрель 30, 2011, 15:04:32
от DK4
Можно ли в одном gui-окне создавать отдельные группы с GUICtrlCreateRadio ?
AutoIt для новичков
agikon 3 395 Последний ответ Сентябрь 30, 2011, 12:24:22
от agikon
Выполнение разных действия в одном условии, после его проверки!
AutoIt для новичков
LightDemon 4 477 Последний ответ Ноябрь 27, 2011, 01:03:08
от LightDemon
передача данных между двумя процессами
AutoIt для новичков
running-frag 3 404 Последний ответ Январь 13, 2012, 01:30:14
от madmasles
[Элементы GUI] Два окна браузера в одном окне GUI
GUI - Графический интерфейс пользователя
ZeVSalt 9 793 Последний ответ Январь 19, 2012, 14:28:32
от ZeVSalt
Работа с всплывающими окнами и вывод динамического текста в GUI
AutoIt для новичков
GenoTIP 5 369 Последний ответ Февраль 15, 2012, 21:15:54
от Viktor1703
[Элементы GUI] Много флешек (swf) в одном интерфейсе
AutoIt для новичков
Старик 3 187 Последний ответ Март 27, 2012, 10:06:18
от Старик


Реклама

* Последние сообщения на форуме
post Перенесено: Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] Yashied Сегодня в 12:09:28
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:09:05
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[Инструменты и помощь по AutoIt] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37
post Узнать значение возвращаемое функцией javascript
[Автоматизация IE и Web-интерфейса] Viktor1703 Май 19, 2012, 23:25:05
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] sngr Май 19, 2012, 23:06:52

* Пользователи онлайн
  • Dot Гостей: 97
  • Dot Скрыт: 1
  • Dot Пользователей: 27
  • Dot Пользователи Online: