GUICtrlCreateMenuItem wenn man gedrückt hat ist davor ein harken?

  • Moin,
    Ich befürchte ich kann mich bei dieser frage nicht richtig ausdrücken aber ich versuch es mal: Undzwa: Ich habe mir Ein Menü angelegt und mir bei einem Menü eintrag ein submenü gemacht. Da sind zwei Menüitems drinnen. Wenn ich jetzt einen davon drücke sollte vor dem gedrückten ein harken erscheinen so wie bei scite wenn ihr unter views mal schaut, da kann man auch sachen auswählen und dann ist da ein harken davor wenn es aktiviert ist. Wie mach ich das?
    (Hoffe ihr habt mich richtig verstanden)
    mfg Kangtar

    Einmal editiert, zuletzt von Kangtar (29. März 2009 um 11:12)

  • Hi Kangtar,
    schau mal unter View, ob ich das richtig verstanden habe ?

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>

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

    GUICreate("My GUI menu",300,200)

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

    Global $defaultstatus = "Ready"
    Global $status

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

    $filemenu = GUICtrlCreateMenu ("&File")
    $fileitem = GUICtrlCreateMenuitem ("Open",$filemenu)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)
    $helpmenu = GUICtrlCreateMenu ("?")
    $saveitem = GUICtrlCreateMenuitem ("Save",$filemenu)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $infoitem = GUICtrlCreateMenuitem ("Info",$helpmenu)
    $exititem = GUICtrlCreateMenuitem ("Exit",$filemenu)
    $recentfilesmenu = GUICtrlCreateMenu ("Recent Files",$filemenu,1)

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

    $separator1 = GUICtrlCreateMenuitem ("",$filemenu,2) ; create a separator line

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

    $viewmenu = GUICtrlCreateMenu("View",-1,1) ; is created before "?" menu
    $viewstatusitem = GUICtrlCreateMenuitem ("Statusbar",$viewmenu)
    GUICtrlSetState(-1,$GUI_CHECKED)
    $okbutton = GUICtrlCreateButton ("OK",50,130,75,22)
    GUICtrlSetState(-1,$GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton ("Cancel",180,130,75,22)

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

    $statuslabel = GUICtrlCreateLabel ($defaultstatus,0,165,300,16,BitOr($SS_SIMPLE,$SS_SUNKEN))

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

    GUISetState ()
    While 1
    $msg = GUIGetMsg()

    If $msg = $fileitem Then
    $file = FileOpenDialog("Choose file...",@TempDir,"All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuitem ($file,$recentfilesmenu)
    EndIf
    If $msg = $viewstatusitem Then
    If BitAnd(GUICtrlRead($viewstatusitem),$GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetState($viewstatusitem,$GUI_UNCHECKED)
    GUICtrlSetState($statuslabel,$GUI_HIDE)
    Else
    GUICtrlSetState($viewstatusitem,$GUI_CHECKED)
    GUICtrlSetState($statuslabel,$GUI_SHOW)
    EndIf
    EndIf
    If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
    If $msg = $infoitem Then Msgbox(0,"Info","Only a test...")
    WEnd
    GUIDelete()

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

    Exit

    [/autoit]


    Viel Erfolg ! :)

  • Genau das suche ich. Nur sollte sich der Harken verschieben. Im Submenü gibt es bei mir 2 einträge. Am anfang soll der harken bei einem sein und wenn ich auf den anderen eintrag klicke soll er sich zu dem anderen verschieben (also zu dem anderen Menü eintrag). Ginge das auch?
    mfg Kangtar

    • Offizieller Beitrag

    Probier mal das aus, ich denke es macht was du suchts.Vorrausgesetzt ich habe es richtig verstanden .

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<StaticConstants.au3>
    GUICreate("My GUI menu", 300, 200)
    Global $defaultstatus = "Ready"
    Global $status
    $filemenu = GUICtrlCreateMenu("&File")
    $fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)
    $helpmenu = GUICtrlCreateMenu("?")
    $saveitem = GUICtrlCreateMenuItem("Save", $filemenu)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $infoitem = GUICtrlCreateMenuItem("Info", $helpmenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
    $recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu, 1)
    $separator1 = GUICtrlCreateMenuItem("", $filemenu, 2) ; create a separator line
    $viewmenu = GUICtrlCreateMenu("Optionen", -1, 1) ; is created before "?" menu
    $viewstatusitem1 = GUICtrlCreateMenuItem("Option1", $viewmenu)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $viewstatusitem2 = GUICtrlCreateMenuItem("Option2", $viewmenu)
    $okbutton = GUICtrlCreateButton("OK", 50, 130, 75, 22)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton("Cancel", 180, 130, 75, 22)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    If $msg = $fileitem Then
    $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
    EndIf
    If $msg = $viewstatusitem1 Then
    GUICtrlSetState($viewstatusitem1, $GUI_CHECKED)
    GUICtrlSetState($viewstatusitem2, $GUI_UNCHECKED)
    EndIf
    If $msg = $viewstatusitem2 Then
    GUICtrlSetState($viewstatusitem2, $GUI_CHECKED)
    GUICtrlSetState($viewstatusitem1, $GUI_UNCHECKED)
    EndIf
    If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
    If $msg = $infoitem Then MsgBox(0, "Info", "Only a test...")
    WEnd
    GUIDelete()
    Exit

    [/autoit]
  • Wenn man die Radio-Option setzt, funktioniert das ohne viel Code:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstants.au3>
    GUICreate("RadioMenuItems")

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

    $mnuAlleOptionen = GUICtrlCreateMenu("Optionen")

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

    $mnuOptions = GUICtrlCreateMenu("Ausrichtung",$mnuAlleOptionen)
    $mriRechts = GUICtrlCreateMenuItem("Rechts",$mnuOptions,-1,True)
    $mriZentriert = GUICtrlCreateMenuItem("Zentriert",$mnuOptions,-1,True)
    $mriLinks = GUICtrlCreateMenuItem("Links",$mnuOptions,-1,True)
    GUICtrlSetState(-1, $GUI_CHECKED)

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

    GUICtrlCreateMenuItem("",$mnuOptions) ; Damit werden die beiden Optionsgruppen getrennt

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

    $mriOben = GUICtrlCreateMenuItem("Oben",$mnuOptions,-1,True)
    $mriMitte = GUICtrlCreateMenuItem("Mitte",$mnuOptions,-1,True)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $mriUnten = GUICtrlCreateMenuItem("Unten",$mnuOptions,-1,True)

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

    GUISetState()

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

    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Moin, danke für eure Antowrten. Ich finde die lösung von progandy wirklich kurz (vom code her) und auch finde ich das was passt für mich. Die sache mit dem harken habe ich mal ausprobiert.
    Danke für eure Hilfe :)
    mfg Kangtar