Direktes MenuItem ansprechen?

  • Hallo Leute!
    Hab mal wieder n' Problem:
    Ich möchte das wenn man auf ein MenuItem klickt (Kein Submenü) soll direkt was kommen ; also ohne SubMenus :

    [autoit]


    $MenuItem4b = GUICtrlCreateMenu("Menu1")
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $MenuItem4b
    MsgBox(64,"Gedrückt!","Gedrückt!")
    EndSwitch
    WEnd

    [/autoit]

    Danke
    MfG button421

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

    Einmal editiert, zuletzt von button421 (25. April 2010 um 15:48)

  • Achso, Entschuldigung:

    [autoit]


    GUIGetMsg()
    $sorry = StringSplit("Entschuldigung")
    MsgBox(64,$sorry, $sorry)

    [/autoit]

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • du könntest den bereich per pixel berechnen:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ==============================================================================================
    ; Function Name..: _MouseIsInArea($iYPoint, $iXPoint, $iYLenght, $iXLenght[, $hWnd])
    ; Description....: Transparentiert das Fenster entsprechend der Angaben, wenn es von der Maus berührt wird
    ; Parameter(s)...: $iYPoint - Punkt auf der Y-Achse im GUI, Start der Region
    ; $iXPoint - Punkt auf der X-Achse im GUI, Start der Region
    ; $iYLenght - Länge auf der Y-Achse im GUI, Länge der Region
    ; $iXLenght - Länge auf der X-Achse im GUI, Länge der Region
    ; (optional) $hWnd - Das betreffende Fenster, nur notwendig, wenn _SlideWin benutzt wurde
    ; Return Value(s): True, wenn sich die Maus auf den angegebenen Koordinaten befindet / Else = False
    ; Notice.........: Anwendungsbeispiel notwendig! Zu finden im Tread: https://autoit.de/...
    ; Author(s)......: black_skorpi (angeknüpft hauptsächlich für die vorherige Version von SEuBo)
    ;===========================================================================================================
    Func _MouseIsInArea($iYPoint, $iXPoint, $iYLenght, $iXLenght, $hWnd = 1)
    Opt("MouseCoordMode", 2)
    Global $OnhWnd = False, $aMPos = MouseGetPos()
    If $OnhWnd = False And $aMPos[0] >= $iYPoint And $aMPos[0] <= $iYPoint + $iYLenght And $aMPos[1] >= $iXPoint And $aMPos[1] <= $iXPoint + $iXLenght Then
    Return True
    $OnhWnd = True
    EndIf
    If $OnhWnd = True And $hWnd <> 1 Then
    Opt("MousCoordMode", 2)
    Global $aMPos = MouseGetPos(), $ahWndPos = WinGetPos($hWnd)
    If $aMPos[0] >= $ahWndPos[0] And $aMPos[0] <= $ahWndPos[0] + $ahWndPos[2] And $aMPos[1] >= $ahWndPos[1] And $aMPos[1] <= $ahWndPos[1] + $ahWndPos[3] Then
    Return True
    EndIf
    Else
    $OnhWnd = False
    Return False
    EndIf
    EndFunc ;==>_MouseIsInArea

    [/autoit]

    obwohl das erst mit meiner bald kommenden udf raus sollte ^^
    ich hoffe es hilft dir
    du solltest noch ein

    [autoit]

    If _IsPressed("01") Then ;...

    [/autoit]

    einbauen xD

  • Tince hat doch die Antwort gepostet....


    [autoit]

    GUICreate('', 400, 200)
    GUICtrlCreateMenu('')
    $MenuButton = GUICtrlCreateMenuItem('Button ohne Submenü', -1)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $MenuButton
    MsgBox(0, 'Info', 'Text')
    EndSwitch
    WEnd

    [/autoit]

    21 is only half the truth.

  • Weil -3 steht für $GUI_EVENT_CLOSE, schau einfach in die GUIConstantsEx.au3, wenn du -3 schreibst brauchst du die GUIConstantsEx.au3 nicht includen.

  • Ist das für das MenuItem ansprechen nötig? Oder kann ich auch $GUI_EVENT_CLOSE nehmen?

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • $GUI_EVENT_CLOSE ist das gleiche wie -3, das ist nur ein schöner Name ;) Das unsichtbare Menü kann man übrigens wieder löschen, wenn man das MenüItem erzeugt hat.

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    GUICreate('', 400, 200)
    $temp = GUICtrlCreateMenu('')
    $MenuButton = GUICtrlCreateMenuItem('Button ohne Submenü', -1)
    GUICtrlDelete($temp)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $MenuButton
    MsgBox(0, 'Info', 'Text')
    EndSwitch
    WEnd

    [/autoit]