MenuID() retourne quoi ??????????

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

MenuID() retourne quoi ??????????

Message par Anonyme2 »

J'ai toujours cru que MenuID() retrounait le handle du menu courant (dépend donc de la fenêtre etc) comme le dit la doc
Description

Renvoie l'identifiant système du menu courant.

Note: Cet identifiant est parfois connu sous le nom de 'Handle'.
J'ai toujours pensé que le Menu était unique pour une fenêtre mais en regardant MenuID() de plus près voir le code qui suit, MenuID() change si on utilise par exemple la commande MenuTitle

La doc dit pour MenuTitle()
Description

Crée un nouveau titre de menu dans la barre horizontale du menu en cours de construction.
...
Il ne s'agît pas de la création d'un menu alors pourquoi MenuID() a-t-il changé ?

Soit la commande est erronée soit la doc l'est.

Idem pour OpenSubMenu()

Code : Tout sélectionner

#Menu = 0
#element1 = 1

  OpenWindow(0,0,0,320,320,#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget,"Vous avez dit Menu, comme c'est bizarre ...")

  hMenu=CreateMenu(#Menu,WindowID()) 
     Debug "Handle du menu résultat de CreateMenu : " +Str(hMenu)
     Debug "MenuID()après utilisation de CreateMenu : " +Str(MenuID())

     Debug ""
     
     MenuTitle("&Fichier")
     Debug "MenuID()après utilisation de MenuTitle : " +Str(MenuID())
     Debug ""

     MenuItem(#element1,"Essai")
     Debug "MenuID()après utilisation de MenuItem : " +Str(MenuID())
     Debug ""
     
     OpenSubMenu("&Info")
     Debug "MenuID()après utilisation de OpenSubMenu : " +Str(MenuID())
     
     
     Repeat
     Until WaitWindowEvent()=#PB_Event_CloseWindow
End
Dernière modification par Anonyme2 le jeu. 06/oct./2005 12:57, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

MenuID() retourne le handle courant du menu ou Popupmenu (sous menu)

En fait quand tu fais MenuTitle(..), tu crées un popup qui sera rattaché à la barre de menu. Les nouveaux items sont ajoutés à ce popup.
Pareil pour OpenSubMenu(..).

En utilisant les API pour la construction d'un menu, c'est plus évident pour le comprendre.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

C'est la même chose sous MAC/linux ?

La doc PB n'est pas claire sur le sujet.
Répondre