ExplorerTreeGadget et ExplorerListGadget [1]

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

ExplorerTreeGadget et ExplorerListGadget [1]

Message par Anonyme2 »

J'utilise dans un outil que je développe, un ExplorerTreeGadget et un ExplorerListGadget

J'ai besoin d'utiliser le Drag'n Drop mais impossible de récupérer l'événement #LVN_BEGINDRAG (ni #LVN_BEGINRDRAG) pour l'ExplorerListGadget ni #TVN_BEGINDRAG (ni #TVN_BEGINRDRAG) pour l'ExplorerTreeGadget même en forçant le style avec ~#TVS_DISABLEDRAGDROP pour ce dernier.

Soit je fais mal les choses soit c'est bien le cas

Si au lieu de ces 2 gadget je met une listicon et un treegadget, le drag ' n drop fonctionne sans problème

Pour l'ExplorerListGadget et l'ExplorerTreeGadget on pourrait ajouter ces 2 évenements (#PB_EventType_DRAGDROP et #PB_EventType_RDRAGDROP ou quelque chose qui ressemble) à la suite des 5 suivants #PB_EventType_Change, PB_EventType_LeftClick, PB_EventType_RightClick, #PB_EventType_LeftDoubleClick et #PB_EventType_RightDoubleClick
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai jetté un oeil sur ton problème, apparemment la cause est dû au fait que ExplorerTreeGadget à un parent qui n'est pas la fenêtre mère.

Donc, tu subclasse la fenêtre parent de l'ExplorerTreeGadget et tu auras tes évènements; je viens de le faire et ça marche!

:)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

nico a écrit :J'ai jetté un oeil sur ton problème, apparemment la cause est dû au fait que ExplorerTreeGadget à un parent qui n'est pas la fenêtre mère.

Donc, tu subclasse la fenêtre parent de l'ExplorerTreeGadget et tu auras tes évènements; je viens de le faire et ça marche!

:)
Ok Nico,

mais en utilisant la callback propre à PB, on ne devrait pas se soucier de ça puisque tous les événements qui n'ont pas été traités par la boucle d'événements interne PB ou celle propre à Windows devraient être traités. J'ai eu ce problème en utilisant un callback classique pour la gestion d'un listicongadget dans un splitter ou container, je ne me souviens plus, j'avais donc cherché la classe de la fenêtre parent et si cétait un splitter, alors je recherchait la fenêtre parent et ensuite je subclassais, mais cétait bien en mode classique de callback, pas celle de PB.

Il y a donc peut-être un problème dans la gestion pour ces gadgets (ou ces événements sont interceptés, mais je ne crois pas car sinon on aurait je pense un conflit)

Merci, je vais continuer sur l'amélioration de ces gadgets :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je viens de modifier mon exemple avec une explorerlistgadget et en utilisant une callback classique ça marche sans problème, mais ça ne marche pas avec la callback de PB

Bon, maintenant il faut que je teste mon code avec mon exploerlistgadget qui est dans un splitter et ce spiltter est lui-même dans un splitter :roll:

Je vais voir si je dois remonter le niveau de parent :?
Répondre