dans cet exemple, je l'ai mis en bas
Code : Tout sélectionner
#Window = 0
Procedure CreateMenuEx(ID.l, WindowID.l, Position.l)
; ID = Numéro du menu
; WindowID = fenêtre associé au menu
; Position = Position du menu sur la fenêtre
; si -1 : menu en bas de la fenêtre
; si x > 0 : menu décalé de x pixel du haut de la fenêtre
x = WindowWidth()
If Position = -1
Position = WindowHeight() - MenuHeight()
EndIf
NewWindow = OpenWindow(#PB_Any, 0, Position, x, MenuHeight(), #PB_Window_BorderLess, "Menu")
Resultat = CreateMenu(ID, WindowID(NewWindow))
SetWindowLong_(WindowID(NewWindow), #GWL_STYLE, GetWindowLong_(WindowID(NewWindow), #GWL_STYLE) | #WS_CHILD | #WS_CLIPCHILDREN)
SetParent_(WindowID(NewWindow), WindowID(WindowID))
ProcedureReturn Resultat
EndProcedure
Procedure CloseMenuEx(WindowID)
UseWindow(WindowID)
UseGadgetList(WindowID(WindowID))
EndProcedure
OpenWindow(#Window, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #WS_CLIPCHILDREN, "Test")
; ne pas oublier de mettre la constante #WS_CLIPCHILDREN dans les paramètre de la fenêtre
If CreateMenuEx(0, #Window, -1)
MenuTitle("Fichier")
MenuItem(0, "Quitter")
CloseMenuEx(#Window) ; On ferme le menu
EndIf
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventMenu
Select EventMenuID() ; menu et barre d'outils
Case 0
Event = #PB_Event_CloseWindow
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow