Mettre un menu m'importe sur la fenêtre et pas en haut

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Mettre un menu m'importe sur la fenêtre et pas en haut

Message par Le Soldat Inconnu »

voila un code qui permet de placer un menu n'importe ou sur le fenêtre

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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ca alors, j'avais jamais vu çà ... 8O

comment t'es venu l'idée ?
je suis pas sûr d'avoir à m'en servir mais why not
Image
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

comment t'es venu l'idée ?
bof, comme ça, j'ai pensé que ça pourrait servir d'avoir un menu en bas d'une fenêtre
mais bien franchement, je n'en ai même pas l'utilité, c'est vraiment histoire de dire c'est possible au cas ou j'en aurai besoin :lol:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre