Code : Tout sélectionner
#Region ;**** Options AutoIt ****
Opt("MustDeclareVars", 1)
Opt("GUICloseOnESC", 1)
Opt("GUIOnEventMode", 1)
Opt("WinSearchChildren", 1)
Opt("WinTextMatchMode", 1) ;1=complete, 2=quick
Opt("WinTitleMatchMode", -2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
#EndRegion ;**** Options AutoIt ****
#Include <ButtonConstants.au3>
#Include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#Include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiMenu.au3>
#Include <WinAPI.au3>
Global $Form1, $Button1
Global Enum $idCmd_test1 = 1000, $idCmd_test2, $idCmd_test3
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 64, 40, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlSetOnEvent($Button1, "Bouton_ContextMenu")
While 1
Sleep(100)
WEnd
Func _Exit()
Exit 0
EndFunc ;==>_Exit
Func Bouton_ContextMenu()
Local $hBrush = _WinAPI_GetSysColorBrush($COLOR_INFOBK)
Local $hBmp1 = _WinAPI_CreateSolidBitmap($Form1, 0xFF0000, 11, 11)
Local $hBmp2 = _WinAPI_CreateSolidBitmap($Form1, 0x00FF00, 11, 11)
Local $hMenu = _GUICtrlMenu_CreatePopup(1)
_GUICtrlMenu_SetMenuBackground($hMenu, $hBrush)
_GUICtrlMenu_AddMenuItem($hMenu, "Action Test 1", $idCmd_test1)
_GUICtrlMenu_SetItemBitmaps($hMenu, 0, $hBmp1, $hBmp1)
_GUICtrlMenu_AddMenuItem($hMenu, "Action Test 2", $idCmd_test2)
_GUICtrlMenu_SetItemBitmaps($hMenu, 1, $hBmp2, $hBmp2)
_GUICtrlMenu_AddMenuItem($hMenu, "Quitter", $idCmd_test3)
Local $WinPos = WinGetPos($Form1, "")
Local $GetClientSize = WinGetClientSize($Form1, "")
Local $CtlPos = ControlGetPos($Form1, "", $Button1)
Local $x = $CtlPos[0] + $WinPos[0] + ($WinPos[2] - $GetClientSize[0]) - 2
Local $y = $CtlPos[1] + $CtlPos[3] + $WinPos[1] + ($WinPos[3] - $GetClientSize[1]) - 5
Local $idCommand = _GUICtrlMenu_TrackPopupMenu($hMenu, @GUI_CtrlHandle, $x, $y, 1, 1, 2)
_GUICtrlMenu_DestroyMenu($hMenu)
_Events_Bt_ContextMenu($idCommand)
EndFunc ;==>Bouton_ContextMenu
Func _Events_Bt_ContextMenu($idCmd)
Switch $idCmd
Case $idCmd_test1
MsgBox(0, "Test", "TEST1")
Case $idCmd_test2
MsgBox(0, "Test", "TEST2")
Case $idCmd_test3
;~ MsgBox(0, "Test", "Quitter")
_Exit()
EndSwitch
EndFunc ;==>_Events_Bt_ContextMenu