Что нового

[Окна, Диалоги] Дочернее окно скрыто

Alkantel

Новичок
Сообщения
45
Репутация
1
Добрый день! Возникла проблема с дочерним окном. Оно должно появляться при нажатии на кнопку, потому я поместил его в функцию. И все срабатывает, но дочернее окно не видно. Если же убрать $WS_SYSMENU, то окно становится видимым, но нет кнопки закрыть.
Код:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
#include <FTPEx.au3>
#include <Array.au3>
#include <WinAPI.au3>

Global $hGui, $lGui, $bButton

$hGui = GUICreate("Parent", 150, 150)
GUISetOnEvent($GUI_EVENT_CLOSE, "f_ExitWin")
$bButton = GUICtrlCreateButton("Выбрать", 40, 65, 70, 20)
GUISetState(@SW_SHOW, $hGui)

While 1
   Switch GUIGetMsg()
   Case $bButton
	  f_Choise_FTP()
   EndSwitch
   Sleep(10)
WEnd


Func f_Choise_FTP ()
   $lGui = GUICreate("Child", 100, 100, $WS_SYSMENU, -1, $hGui)
	  GUISetOnEvent($GUI_EVENT_CLOSE, "f_CloseWin")
   $bButton1 = GUICtrlCreateButton("Кнопка", 15, 40, 70, 20)
   GUISetState(@SW_SHOW, $lGui)
EndFunc

Func f_CloseWin()
    GUIDelete(@GUI_WinHandle)
EndFunc

Func f_ExitWin()
    GUIDelete(@GUI_WinHandle)
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
примерно
Код:
Opt("GUIOnEventMode", 1)
Global $hGui, $lGui, $bButton, $bButton1

$hGui = GUICreate("Parent", 150, 150)
GUISetOnEvent($GUI_EVENT_CLOSE, "f_ExitWin")
$bButton = GUICtrlCreateButton("Выбрать", 40, 65, 70, 20)
GUICtrlSetOnEvent(-1, "f_Choise_FTP")
GUISetState(@SW_SHOW)

While 1

	Sleep(10)
WEnd


Func f_Choise_FTP()
	$lGui = GUICreate("Child", 100, 100, 20, 20, $WS_SYSMENU + $WS_CAPTION, -1, $hGui)
	GUISetOnEvent($GUI_EVENT_CLOSE, "f_CloseWin")
	$bButton1 = GUICtrlCreateButton("Кнопка", 15, 40, 70, 20)
	GUISetState(@SW_SHOW)
EndFunc   ;==>f_Choise_FTP

Func f_CloseWin()
	GUIDelete($lGui)
EndFunc   ;==>f_CloseWin

Func f_ExitWin()
	Exit
EndFunc   ;==>f_ExitWin
а вот справку читать нужно внимательно. при создании второго окна ты не указал размеры самого окна. по event функции тоже неправильно
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
joiner сказал(а):
по event функции тоже неправильно
А как при включенном режиме GUIOnEventMode передать параметры функции. Например текст, введенный в GUICtrlCreateInput?
справку читаю. Но с GUI еще мало знаком.
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
Через глобальную переменную. Зачастую режим onevent не нужен.
 
Верх