Funktionreferenz


_GUICtrlMenu_CreatePopup

Beschreibung anzeigen in

Erstellt ein Dropdown Menü, Untermenü oder Shortcut Menü

#include <GuiMenu.au3>
_GUICtrlMenu_CreatePopup ( [$iStyle = $MNS_CHECKORBMP] )

Parameter

$iStyle [optional] Stile des Menüs. Es kann einer oder mehrere der folgende Werte sein:
    $MNS_AUTODISMISS - das Menü wird automatisch beendet, wenn sich die Maus für 10 Sekunden außerhalb des Menüs befindet
    $MNS_CHECKORBMP - Der gleiche Platz ist für das anzuhakende Feld und das Bitmap reserviert (Standard))
    $MNS_DRAGDROP - Menüitems sind OLE drop Ziele oder drag Quellen
    $MNS_MODELESS - Menü ist formlos
    $MNS_NOCHECK - Es ist kein Platz links von einem Item für das anzuhakende Feld reserviert
    $MNS_NOTIFYBYPOS - Der Menüowner empfängt eine WM_MENUCOMMAND Nachricht anstelle von einer WM_COMMAND Nachricht für die Auswahl

Rückgabewert

Erfolg: das Handle zu dem oben erstellten Menü
Fehler: 0

Bemerkungen

Menüressourcen die mit einem Fenster verknüpft sind, werden automatisch wieder freigegeben. Falls das Menü nicht mit einem Fenster verknüpft ist, so muss eine Anwendung die Systemressourcen wieder freigeben bevor das Menü geschlossen wird.
Um die Ressourcen wieder freizugeben, ist _GUICtrlMenu_DestroyMenu() aufzurufen.
$MNS_NOTIFYBYPOS ist ein Menü-Header-Stil und hat keine Auswirkung, wenn er auf einzelne Untermenüs angewendet wird.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlMenu_CreateMenu, _GUICtrlMenu_DestroyMenu

Siehe auch

Suche nach CreatePopupMenu in der MSDN Bibliothek.

Beispiel

#include <GUIConstantsEx.au3>
#include <GuiMenu.au3>
#include <WinAPIError.au3>
#include <WindowsConstants.au3>

Global Enum $e_idOpen = 1000, $e_idSave, $e_idInfo

Example()

Func Example()
    ; Erstellt eine GUI
    GUICreate("Menu", 400, 300)
    GUISetState(@SW_SHOW)

    ; Registriert eine benutzerdefinierte Funktion
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

; Handle der WM_COMMAND Nachrichten
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Switch $wParam
        Case $e_idOpen
            _WinAPI_ShowMsg("Öffnen")
        Case $e_idSave
            _WinAPI_ShowMsg("Speichern")
        Case $e_idInfo
            _WinAPI_ShowMsg("Info")
    EndSwitch
EndFunc   ;==>WM_COMMAND

; Handle der WM_CONTEXTMENU Nachrichten
Func WM_CONTEXTMENU($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Local $hMenu

    $hMenu = _GUICtrlMenu_CreatePopup()
    _GUICtrlMenu_InsertMenuItem($hMenu, 0, "Öffnen", $e_idOpen)
    _GUICtrlMenu_InsertMenuItem($hMenu, 1, "Speichern", $e_idSave)
    _GUICtrlMenu_InsertMenuItem($hMenu, 3, "", 0)
    _GUICtrlMenu_InsertMenuItem($hMenu, 3, "Info", $e_idInfo)
    _GUICtrlMenu_TrackPopupMenu($hMenu, $wParam)
    _GUICtrlMenu_DestroyMenu($hMenu)
    Return True
EndFunc   ;==>WM_CONTEXTMENU