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]]]]]] )
$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 |
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. |
Consultez TrackPopupMenu dans la librairie MSDN.
#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