Hallop Leute,
wie die [berschrift schon sagt will ich eine Gui in einer gui
das heist Ne große Gui und wenn man da drafu klick soll ne gui in der mitte kommen
Gui in Gui
-
- [ offen ]
-
MR.Multibot -
17. August 2010 um 21:25 -
Geschlossen -
Erledigt
-
-
Hallo Mr.MultiBot,
wo ist das Problem
[autoit]GuiCreate
[/autoit]nehmen, notfalls Hilfe oder SuFu bemühen,
mfg (auto)Bert
-
2x GUICreate und eines davon ist das Parent Window und das andere das Child Window.
-
-
Hi!
ein beispiel von @progandy
Spoiler anzeigen
[autoit]#include<WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode",1)$hGUI = GUICreate("Test", @DesktopWidth /2, @DesktopHeight / 2, -2, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_CLIPCHILDREN))
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3,"_exit")
$hChildGUI = GUICreate("Test2", 300, 300, 10, 10, $WS_MAXIMIZEBOX)
GUISetOnEvent(-3,"_closeChild")$nExStyle = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hChildGUI, "int", 0xEC)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $hChildGUI, "int", 0xEC, "int", BitOR($nExStyle[0], $WS_EX_MDICHILD))
DllCall("user32.dll", "int", "SetParent", "hwnd", $hChildGUI, "hwnd", $hGUI)
GUISetState()GUISetState(@SW_SHOW, $hGUI)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)WEnd
[/autoit] [autoit][/autoit] [autoit]Func _closeChild()
[/autoit] [autoit][/autoit] [autoit]
GUIDelete($hChildGUI)
EndFuncFunc _exit()
[/autoit]
Exit
EndFuncLG Kleiner
-
Alles anzeigen
Hi!
ein beispiel von @progandy
Spoiler anzeigen
[autoit]#include<WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode",1)$hGUI = GUICreate("Test", @DesktopWidth /2, @DesktopHeight / 2, -2, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_CLIPCHILDREN))
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3,"_exit")
$hChildGUI = GUICreate("Test2", 300, 300, 10, 10, $WS_MAXIMIZEBOX)
GUISetOnEvent(-3,"_closeChild")$nExStyle = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hChildGUI, "int", 0xEC)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $hChildGUI, "int", 0xEC, "int", BitOR($nExStyle[0], $WS_EX_MDICHILD))
DllCall("user32.dll", "int", "SetParent", "hwnd", $hChildGUI, "hwnd", $hGUI)
GUISetState()GUISetState(@SW_SHOW, $hGUI)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)WEnd
[/autoit] [autoit][/autoit] [autoit]Func _closeChild()
[/autoit] [autoit][/autoit] [autoit]
GUIDelete($hChildGUI)
EndFuncFunc _exit()
[/autoit]
Exit
EndFuncLG Kleiner
Hm, muß das hier nach nem Jahr so nochmal ausbuddeln. Ist es damit auch möglich mehrere Childs anzuzeigen, und wenn ja wie? Habe schon versucht, das ganze zu kopieren und hab einfach andere Variablen verwendet, es wird mir aber immer nur eine Gui angezeigt. -
ich denke mal ich habs ziemlich getroffen:
Spoiler anzeigen
[autoit]$Gui1 = GUICreate("GUI 1", 300, 300); Erstellt die erste GUI
[/autoit]
$button1 = GUICtrlCreateButton("Button1", 10, 50, 200, 30); Erstellt einen Button
GUISetState(); Zeigt die erste GUI an
while 1
$msg = GUIGetMsg(); Guckt ob der Button geklickt wird ( bzw. wenn es mehrere Controls gibt ob die auch geklickt werden )
Select
case $msg = $button1; Wenn der Button dann nun geklickt wird, kommt folgendes:
$Gui2 = GUICreate("GUI 2", 100, 100); Die zweite GUI wird ertsellt
$button2 = GUICtrlCreateButton("Button2", 10, 10, 60, 20); Der zweite Button wird erstellt
GUISetState(); zeigt die zweite GUI an
Do
Until GUIGetMsg() = $button2; Wenn man den zweiten Button klickt, dann...
Exit; Wird das Programm beendet
EndSelect
WEnd
Man muss zwar auf einen Button klicken und nicht auf die GUI selber, aber so funktioniert das auf jedenfall.mfg
Hauke -
Hm, nee, leider nicht. In dem Bsp. von Kleiner, wird die zweite Gui innerhalb der ersten angezeigt. Quasi nen Fenster im Fenster. Bei deiner Variante öffnet sich ein neues Fenster.
-