Page 1 sur 1
Update menu recent
Publié : lun. 04/févr./2013 15:47
par blendman
salut
J'aimerai savoir comment on fait un update d'un menu (ajout de menuitem, changement de nom, etc..), notamment dans le cas d'un menu de type : fichier récent, où on peut ajouter des MenuItem() alors que le menu est déjà créé, ce n'est pas juste changer le texte de menuItem(), ça je sais faire ^^.
J'ai testé en supprimant le menu et en le recréant , mais c'est pas très joli ^^.
Connaissez-vous une autre méthode ?
Merci.
Re: Update menu recent
Publié : lun. 04/févr./2013 19:56
par Kwai chang caine
Bonjour BlendMan,
Tu n'a pas dit si tu voulais que ce soit crossplatform ?
Pour les ajouter, bas c'est simple.
Autrement j'ai des trucs...si ça peut t'aider
Un de SROD pour changer dynamiquement
http://www.purebasic.fr/english/viewtop ... 88#p285688
Un de LUIS pour le créer avec les API
http://www.purebasic.fr/english/viewtop ... 26#p377226
Un de HEXOR pour changer les noms, et les recuperer
http://www.purebasic.fr/german/viewtopi ... 17#p254917
Un de TROND pour la gestion du contextuel dynamiquement
http://www.purebasic.fr/english/viewtop ... 70#p312970
Un de FALKO dynamique
http://www.purebasic.fr/german/viewtopi ... highlight=
Un de FloHimself dynamique aussi
http://www.purebasic.fr/german/viewtopi ... highlight=
Je sais c'est pas tout à fait ce que tu voulais, mais ça peut peut être, t'aider à démarrer

En tout cas ça te fera de la lecture

Re: Update menu recent
Publié : lun. 04/févr./2013 20:18
par Fred
Ce qu'on fait avec l'IDE c'est qu'on le detruit et on le reconstruit.
Re: Update menu recent
Publié : mar. 05/févr./2013 9:57
par blendman
KCC : merci, je vais regarder tout ça, y'a des choses intéressantes
Fred a écrit :Ce qu'on fait avec l'IDE c'est qu'on le detruit et on le reconstruit.
salut. C'est ce que je fais, mais le menu disparait environ 500 ms pour ensuite réapparaitre. Peut être y'a -t-il un moyen de ne pas rafraichir la fenêtre pendant qu'on fait freemenu() et qu'on le recréé ^^ ?
Re: Update menu recent
Publié : mar. 05/févr./2013 11:58
par Fred
Oui y'a un moyen (necessaire que sous Windows):
Code : Tout sélectionner
Procedure StartFlickerFix(Window)
SendMessage_(WindowID(Window), #WM_SETREDRAW, #False, 0)
EndProcedure
Procedure StopFlickerFix(Window, DoRedraw)
SendMessage_(WindowID(Window), #WM_SETREDRAW, #True, 0)
If DoRedraw
InvalidateRect_(WindowID(Window), #Null, #True)
EndIf
EndProcedure
Tu appelles StartFlickerFix() avant la destruction de ton menu et StopFlickerFix() une fois l'autre créé

Re: Update menu recent
Publié : mar. 05/févr./2013 13:30
par blendman
Excellent !
Merci beaucoup
PS : par contre faut que je refresh l'editorgadget que j'utilise aussi, va falloir que je trouve ça ^^