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