Gui immer direkt unter anderer Gui

  • Folgendes Problem:
    Ich habe Gui1 & Gui2
    Gui1 ist grösser als Gui2
    Gui1 darf nicht WS_EX_Topmost sein
    Gui2 kann nicht von Gui1 wegbewegt werden.

    Gui2 soll immer direkt unter Gui1 sein.

    Ich hoffe das war verständlich.


    mfg Ubuntu

  • yxyx
    Das habe ich doch schon gemacht

    Zitat

    Gui2 kann nicht von Gui1 wegbewegt werden.

    Oscar

    Zitat

    Gui2 soll immer direkt unter Gui1 sein.

    und nicht durch aktivieren ö.ä. davorgeschoben werden können

    mfg Ubuntu

    Edit: Ich probiere grad noch ein bisschen rum kann ... ich glaub ich kriegs hin

  • Ok ich habs hingekriegt in dem ich beide als Toolwindow gemacht habe und ansonsten auch gleiche Stile genommen habe.

    mfg Ubuntu

    • Offizieller Beitrag

    Hier mal meine "Lösung":

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $hGui1 = GUICreate('Gui1', 640, 480, 20, 20)
    $hGui2 = GUICreate('Gui2', 400, 300, 600, 20, $WS_POPUP, $WS_EX_TOOLWINDOW)
    GUISetState(@SW_SHOW, $hGui1)
    GUISetState(@SW_SHOW, $hGui2)
    WinActivate($hGui1)
    GUIRegisterMsg($WM_MOVE, 'WM_Move')
    GUIRegisterMsg($WM_ACTIVATE, 'WM_ACTIVATE')

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Until GUIGetMsg() = -3

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_Move($hWnd, $Msg, $wParam, $lParam)
    Local $pos = WinGetPos($hGui1)
    WinMove($hGui2, '', $pos[0]+600, $pos[1])
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_ACTIVATE($hWnd, $Msg, $wParam, $lParam)
    If $hWnd = $hGui2 Then WinActivate($hGui1)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Vielen Dank :thumbup:

    Mir ist nämlich aufgefallen das das doch ein bisschen buggig ist.

    mfg Ubuntu