GUICtrlCreateMenuItem <- Menüeintrag ausblenden

  • hiho liebe leute :)

    zwei fragen:

    ich erstelle ein menüitem so:
    $exportitem = GUICtrlCreateMenuItem("Export", $MenuItem)
    und würde es anschließend gerne komplett aus dem menü ausblenden, was aber so nicht klappt:
    GUICtrlSetState($exportitem , $GUI_HIDE)

    Wie bekomme ich es ausgeblendet ???

    zweite frage:

    z.Z. nutze ich noch AutoIt 3.3.60 ... wenn ich jetzt auf 3.3.81 update, gibts dort wieder komplikationsprobleme so das
    man seinen code anpassen muss, so wie ich das aus der vergangenheit in erinnerung habe ?

    danke im voraus! :D

    Einmal editiert, zuletzt von WhiteLion (8. Februar 2012 um 15:59)

  • Hallo WhiteLion,

    MenuItems reagieren nicht auf Hide (MS-Festlegung) aber du kannst es so machen:

    abgewandeltes Hilfebeispiel zu GUICtrlCreateMenu
    [autoit]

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

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $defaultstatus = "Ready", $status, $filemenu, $fileitem
    Local $helpmenu, $saveitem = -9999, $infoitem, $exititem, $recentfilesmenu
    Local $separator1, $okbutton, $cancelbutton
    Local $statuslabel, $msg, $file

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

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

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

    $filemenu = GUICtrlCreateMenu("&File")
    $fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)
    $helpmenu = GUICtrlCreateMenu("?")
    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]

    $okbutton = GUICtrlCreateButton("&show save", 50, 130, 70, 20)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton("&hide save", 180, 130, 70, 20)

    [/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()
    Switch $msg
    Case $fileitem
    $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
    Case $GUI_EVENT_CLOSE, $exititem
    ExitLoop
    Case $infoitem
    MsgBox(0, "Info", "Only a test...")
    Case $okbutton
    $saveitem = GUICtrlCreateMenuItem("Save", $filemenu, 3)
    Case $cancelbutton
    GUICtrlDelete($saveitem)
    $saveitem = -9999
    Case $saveitem
    MsgBox(0, "Save", "saveitemtest", 5)
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>Example

    [/autoit]

    wenn das entsprechende Item in der MsgLop-Schleife abgefragt wird muss ihm der Variable welche die ControlID aufnimmt ein Wert zugewiesen werden der ganz sicher nicht von anderen Contrls oder Guievents schon benutzt wird,

    mfg autoBert