Fokus von Child-GUI an Parent binden

  • Ich habe eine GUI die eine Child-GUI enthält.
    Wenn man auf die Child-GUI klickt verliert die Parent-GUI den Fokus.
    Wie kann man das verhindern?

    minimal Beispiel
    [autoit]

    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>

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

    $parent = GUICreate("Form1", 688, 466, 192, 124)
    GUICtrlCreateLabel("Parent", 176, 10, 35, 17)

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

    $child = GUICreate("", 668, 406, 10, 50, BitOR($WS_POPUP, $WS_GROUP, $WS_VSCROLL, $WS_CLIPSIBLINGS), $WS_EX_MDICHILD, $parent)
    GUISetBkColor(0xc0d8f1)
    GUICtrlCreateLabel("Child", 176, 64, 35, 17)

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

    GUISetState(@SW_SHOW, $parent)
    GUISetState(@SW_SHOW, $child)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • Moin, ich denke mal überhaupt nicht, es ist ganz normal das eine GUI in den Fokus gesetzt wird sobald sie angeklickt wird wieso sollte man dies auch verhindern wollen?

    Gruß Marvin

  • Hallo Chrys,

    durch benutzen anderer STile beim erstellen des Childs:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>

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

    $parent = GUICreate("Form1", 688, 466, 192, 124)
    GUICtrlCreateLabel("Parent", 176, 10, 35, 17)
    GUICtrlCreateButton("Test",10,10)

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

    $child = GUICreate("", 668, 406, 10, 50, $WS_CHILD, Default, $parent)
    GUISetBkColor(0xc0d8f1)
    GUICtrlCreateLabel("Child", 176, 64, 35, 17)
    GUICtrlCreateButton("Test2",10,10)

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

    GUISetState(@SW_SHOW, $parent)
    GUISetState(@SW_SHOW, $child)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    klappt es zumindest unter Win XP3,

    mfg autoBert