OnEventMode

  • Huhu ich habe nen Script gebastelt und dann wollten meine Buttons nicht.
    Ich hab alles so gemacht wie im Bsp...
    Das komische ist, dass wenn ich Buttons reinkopiere dann gehen die neuen Buttons...

    hier das Script von mir...
    Button 1 und 3 gehen nicht und 2 und 4 gehen...

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    Global $Gui
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus

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

    $Gui = GUICreate("ProgrammViewer", 1020, 768 )
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")

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

    $ok1 = GUICtrlCreateButton("1", 10, 30, 100)
    GUISetOnEvent(-1, "ButtonClicked")

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

    $bAutoCMX = GUICtrlCreateButton("2", 150, 30, 100)
    GUICtrlSetOnEvent(-1, "ButtonClicked")

    $ok2 = GUICtrlCreateButton("3", 10, 70, 100)
    GUISetOnEvent(-1, "ButtonClicked")

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

    $bAutoCMX2 = GUICtrlCreateButton("4", 150, 70, 100)
    GUICtrlSetOnEvent(-1, "ButtonClicked")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10)
    WEnd

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

    Func ButtonClicked()
    MsgBox(0,"",@GUI_CtrlId)
    EndFunc

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

    Func SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    ;~ MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit

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

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    ;~ MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

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

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    ;~ MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case Else
    MsgBox(0,"", "NÜX")
    EndSelect

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

    EndFunc ;==>SpecialEvents

    [/autoit]

    Einmal editiert, zuletzt von Kijan (8. September 2010 um 08:40)

  • ganz einfach.

    bei Button 2 und Button 4 benutzt du

    [autoit]

    Guictrlsetonevent

    [/autoit]

    wies auch richtig ist.

    bei Button 1 und Button 3 jedoch nur

    [autoit]

    Guisetonevent

    [/autoit]

    die button sind controls. deswegen musste das gleiche auch für 1 und 3 machen ;)

    sprich:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    Global $Gui
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus

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

    $Gui = GUICreate("ProgrammViewer", 1020, 768 )
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")

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

    $ok1 = GUICtrlCreateButton("1", 10, 30, 100)
    GUIctrlSetOnEvent(-1, "ButtonClicked")

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

    $bAutoCMX = GUICtrlCreateButton("2", 150, 30, 100)
    GUICtrlSetOnEvent(-1, "ButtonClicked")

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

    $ok2 = GUICtrlCreateButton("3", 10, 70, 100)
    GUIctrlSetOnEvent(-1, "ButtonClicked")

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

    $bAutoCMX2 = GUICtrlCreateButton("4", 150, 70, 100)
    GUICtrlSetOnEvent(-1, "ButtonClicked")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10)
    WEnd

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

    Func ButtonClicked()
    MsgBox(0,"",@GUI_CtrlId)
    EndFunc

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

    Func SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    ;~ MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit

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

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    ;~ MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

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

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    ;~ MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case Else
    MsgBox(0,"", "NÜX")
    EndSelect

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

    EndFunc ;==>SpecialEvents

    [/autoit]
    • Offizieller Beitrag

    Du mußt bei den Controls GUICtrlSetOnEvent anstatt GUISetOnEvent benutzen.