Pour ceux que cela peut intéresser, voici le code le plus leger que j'ai pu trouver en suivant le lien de Falsam
Objectifs:
1. Ajouter un
menu contextuel dans un
EditorGadget (Ce gadget ne supporte pas nativement le clic droit)
Solution: détection de #WM_RBUTTONDOWN sur le gadget
2. Affecter à ce menu les
action systèmes: Couper, Copier, Coller (Ces actions n'ont pas de constante PB)
Solution: Utilisation de SendMessage_(GadgetID(0), #WM_xxx)
Auteur: Shardik et probablement Rashad (je n'ai pas trouvé la source initiale)
Source: http://www.purebasic.fr/english/viewtop ... 68&start=6
Code : Tout sélectionner
; Source: http://www.purebasic.fr/english/viewtopic.php?f=13&t=63168&start=6
OpenWindow(0, 100, 100, 300, 190, "Display context menu on right click")
EditorGadget(0, 10, 10, 280, 170)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
If CreatePopupMenu(0)
MenuItem(0, "Cut")
MenuItem(1, "Copy")
MenuItem(2, "Paste")
EndIf
CompilerEndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Case #PB_Event_Menu
Select EventMenu()
Case 0
SendMessage_(GadgetID(0), #WM_CUT, 0, 0)
Case 1
SendMessage_(GadgetID(0), #WM_COPY, 0, 0)
Case 2
SendMessage_(GadgetID(0), #WM_PASTE, 0, 0)
EndSelect
Case #WM_RBUTTONDOWN
If EventGadget() = 0
DisplayPopupMenu(0, WindowID(0))
EndIf
CompilerEndIf
EndSelect
ForEver
Voir aussi ce topic intéressant:
http://www.forums.purebasic.com/english ... 13&t=17167
Hope this help
Mettre dans la FAQ ? ou mieux, dans les fonctions standard d'une prochaine version
Edit: Après intégration dans mon application, je constate que ce système ne fonctionne pas d'une manière régulière
C'est peut-être pour cela que ce n'est pas intégré aux possibilités standard du GadgetEditor ?