UDF > GUI > GuiMenu >


_GUICtrlMenu_TrackPopupMenu

Affiche un raccourci de menu à l'emplacement spécifié

#include <GuiMenu.au3>
_GUICtrlMenu_TrackPopupMenu ( $hMenu, $hWnd [, $iX = -1 [, $iY = -1 [, $iAlignX = 1 [, $iAlignY = 1 [, $iNotify = 0 [, $iButtons = 0]]]]]] )

Paramètres

$hMenu Handle du raccourci de menu à afficher
$hWnd Handle de la fenêtre qui détient le raccourci du menu
$iX [optionnel] Spécifie la position horizontale du raccourci, en coordonnées écran.
Si cette valeur est -1, la position courante de la souris est utilisée.
$iY [optionnel] Spécifie la position verticale du raccourci, en coordonnées écran.
Si cette valeur est -1, la position courante de la souris est utilisée.
$iAlignX [optionnel] Spécifie comment positionner le menu horizontalement:
    0 - Centre le menu horizontalement par rapport à $iX
    1 - Positionne le menu de sorte que son côté gauche soit aligné avec $iX
    2 - Positionne le menu de sorte que son côté droit soit aligné avec $iX
$iAlignY [optionnel] Spécifie comment positionner le menu verticalement:
    0 - Positionne le menu de sorte que son coté inférieur soit aligné avec $iY
    1 - Positionne le menu de sorte que son coté supérieur soit aligné avec $iY
    2 - Centre le menu verticalement par rapport à $iY
$iNotify [optionnel] Utilisé pour déterminer une sélection en l'absence d'une fenêtre parent:
    1 - N'envoie pas de message de notification
    2 - Retourne l'identifiant de l'élément sélectionné par l'utilisateur
$iButtons [optionnel] Boutons de souris pour traquer les raccourcis:
    0 - L'utilisateur peut sélectionner les éléments avec seulement le bouton gauche de la souris
    1 - L'utilisateur peut sélectionner les éléments avec les boutons gauche et droit

Valeur de retour

Succès: Si $iNotify est fixé à 2, la valeur de retour est l'identifiant de l'élément sélectionné par l'utilisateur. Si l'utilisateur annule le menu sans faire de sélection ou si une erreur se produit, alors la valeur de retour est zéro. Si $iNotify n'est pas réglé sur 2, la valeur de retour est 1.
Échec: Retourne 0.

Voir aussi

Consultez TrackPopupMenu dans la librairie MSDN.

Exemple

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

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

Example()

Func Example()
    ; Crée une GUI
    GUICreate("Menu", 400, 300)
    GUISetState(@SW_SHOW)

    ; Crée un gestionnaire de messages
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

; Répond aux messages WM_COMMAND
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Switch $wParam
        Case $e_idOpen
            _WinAPI_ShowMsg("Open")
        Case $e_idSave
            _WinAPI_ShowMsg("Save")
        Case $e_idInfo
            _WinAPI_ShowMsg("Info")
    EndSwitch
EndFunc   ;==>WM_COMMAND

; Gére les messages WM_CONTEXTMENU
Func WM_CONTEXTMENU($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Local $hMenu

    $hMenu = _GUICtrlMenu_CreatePopup()
    _GUICtrlMenu_InsertMenuItem($hMenu, 0, "Open", $e_idOpen)
    _GUICtrlMenu_InsertMenuItem($hMenu, 1, "Save", $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