Beim Klick eines Child-GUI's

  • Wie kann ich da etwas einstellen?!

    Ich blick bei den Windows Nachrichtencodes nicht durch bzw. mit GUIRegisterMsg. Ich weiß nicht wann ich WM_Notify, Command oder was auch immer benutzen muss. Aufjedenfall hab ich herausgefunden dass es mit

    $WM_LBUTTONDOWN

    Nur weiß ich nicht wie ich das ganze mit GUIRegisterMsg oder was auch immer umsetze. Ich will das ganze wie gesagt für ein Child GUI haben, also wenn man auf den Child GUI klickt das dann einfach

    [autoit]

    Exit

    [/autoit]

    passiert. Weiß jemand wie ich das umsetze?

    Einmal editiert, zuletzt von BurakSZ (3. Juli 2010 um 10:00)

  • So zB.

    [autoit]

    #include <WindowsConstants.au3>
    $hMain = GUICreate("")
    GUISetState()
    $hSub = GUICreate("", 500, 500, -1, -1, -1, 0, $hMain)
    GUISetState()

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

    GUISwitch($hSub)
    GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTON")

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

    While GUIGetMsg() <> -3
    WEnd

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

    Func WM_LBUTTON($hWndGUI, $MsgID, $WParam)
    Exit
    EndFunc ;==>WM_LBUTTON

    [/autoit]
  • Hallo BurakSZ,

    ich verstehe den Sinn zwar nicht, hier aber eine ganz einfache Lösung:

    Spoiler anzeigen
    [autoit]

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

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

    Dim $idRadio2[100]
    #region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("Form1", 441, 441, 508, 269)
    $Group1 = GUICtrlCreateGroup("Group1", 10, 10, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Group4", 220, 220, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Group2", 220, 10, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $hGroup2 = GUICreate("", 170, 170, 235, 25, BitOR($WS_POPUP, $WS_GROUP, $WS_VSCROLL, $WS_CLIPSIBLINGS), $WS_EX_MDICHILD, $Form1)
    For $i = 0 To 99
    $idRadio2[$i] = GUICtrlCreateRadio("Radio " & $i, 5, $i * 25, 60, 18)
    Next
    GUISetState(@SW_SHOW)
    GUISwitch($Form1)
    $Group3 = GUICtrlCreateGroup("Group3", 10, 220, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Case $hGroup2
    Exit
    EndSwitch
    WEnd

    [/autoit]

    sobald in die Hilfsgui (mit den Radios) geklickt wird beendet sich das Programm

    mfg (Auto)Bert

  • Das von Sprenger geht in die richtige richtigung funktioniert aber nicht. das ganze soll mit $WS_CHILD funktionieren.

    weiß jemand wie ich das ganze mit $WS_CHILD hinkrieg. Also ein MainGUI und ein anderes GUI als Child mit dem Style $WS_CHILD.

    Wenn man auf den Child drückt soll das GUI ausgehen. hier ein beispiel: Wenn man auf den Label ('X') drückt (child gui) soll das ganze skript ausgehen:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=c:\users\burak\desktop\hsearchgui.kxf
    $hGUI = GUICreate("FastSearch -Search", 1101, 487, 138, 116, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))
    $hCloseGUI = GUICreate("X", 20, 40, 1070, 1, $WS_CHILD, 0, $hGUI)
    GUICtrlCreateLabel("X", 0, 0, 20, 40)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial Black", 4)
    GUICtrlSetColor(-1, 0x000000)
    GUISetState(@SW_SHOW, $hGUI)
    GUISetState(@SW_SHOW, $hCloseGUI)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    gute nacht

  • Ich habs gelöst. (Wusste nicht das GUICtrSetOnEvent mit Labels funktioniert :D)