Hallo,
durch Eure Hilfe bin ich um einiges weitergekommen! Danke dafür.
Um meine neue Frage zu veranschaulichen, erst einmal das Ausgangs-Script:
Spoiler anzeigen
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$GUI1 = GUICreate("GUI1", 200, 200, 0, 0, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX))
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI_EVENT_CLOSE")
GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")
GUISetState(@SW_SHOW, $GUI1)
$GUI2 = GUICreate("GUI2", 200, 200, 300, 0, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX))
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI_EVENT_CLOSE")
GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")
GUISetState(@SW_SHOW, $GUI2)
While 1
Sleep(1000)
WEnd
Func _GUI_EVENT_CLOSE()
Exit
EndFunc
Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
$minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
DllStructSetData($minmaxinfo, 3, 300) ; width
DllStructSetData($minmaxinfo, 4, @DesktopHeight) ; height
DllStructSetData($minmaxinfo, 5, 0) ; left
DllStructSetData($minmaxinfo, 6, 0) ; top
DllStructSetData($minmaxinfo, 7, 200) ; min X
DllStructSetData($minmaxinfo, 8, 200) ; min Y
DllStructSetData($minmaxinfo, 9, 200) ; max X
DllStructSetData($minmaxinfo, 10, @DesktopHeight) ; max Y
Return 0
EndFunc
Mit der Funktion MY_WM_GETMAXINFO() setze ich dank einer Lösung von Xenobiologist die minimale und die maximale Höhe und Breite eines Fensters beim Ziehen (7, 8, 9, 10), sowie die maximale Breite und Höhe sowie die Position des Fensters beim Maximieren (3, 4, 5, 6).
Soweit, so gut - diese Funktion gilt für alle erstellten GUI's.
Jetzt will ich erreichen, dass für das zweite Fenster $GUI2 andere MinMax-Einstellungen gelten, als für die erste $GUI1.
Doch egal, was ich anstelle - sobald das zweite Fenster auftaucht, werden die gewünschten Einstellungen für das erste Fenster überschrieben.
Ich habe bereits versucht, zwei unterschiedliche Funktionen, GUI1_WM_MESSAGE() und GUI2_WM_MESSAGE() mit jeweils unterschiedlichen Variablen zu etablieren,
Ich habe bereits IF- und CASE- Bedingungen festgelegt - die nur für ein Fenster gelten.
Es ist und bleibt immer das selbe - sobald die GUIRegisterMsg($WM_GETMINMAXINFO, ...) - Funktion genutzt wird, verliert eines der Fenster seine Einstellungen, und übernimmt die Einstellungen des zweiten Fensters.
Ich möchte jetzt also, dass jedes Fenster unterschiedliche Einstellungen hat, und zwar
a) jeweils für minimale und maximale Breite und Höhe beim Ziehen,
b) jeweils für Position und maximale Breite beim Maximieren-Button.
Ist das überhaupt möglich?
Ich Dank Euch bereits jetzt für jeden Hinweis.