Gérer un Double click dans un ScrollAreaGadget() ?

Sujets variés concernant le développement en PureBasic
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Gérer un Double click dans un ScrollAreaGadget() ?

Message par Dräc »

Bon, j’ai beau avoir testé un peu tout ce que j’ai pu trouver (EventType() + [TUTO] La souris de Dobro + forum anglais entre autre), je n’arrive tjrs pas à récupérer l’événement double-click dès que j’utilise un ScrollAreaGadget() !!
Dans le passé, on a vu qu’il fallait une callback associée au ScrollAreaGadget() pour gérer soi-même les évènements liés au scrolling, mais là encore rien n’y fait !

C'est d’autant plus frustrant que les simples clicks eux continuent à marcher!(Il manquerait plus que ca ;) )

Il y a tjrs la possibilité du "timer" pour contrôler tout ca, mais ce serait plus élégant de récupérer l’évènement #WM_LBUTTONDBLCLK, non ?

Quelqu’un a t’il une idée où une explication ??

Code : Tout sélectionner

InitSprite() 

If OpenWindow(0, 0, 0, 600, 400, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris") 

  If CreateGadgetList(WindowID())
    ScrollAreaGadget(1, 0, 0, 600, 400, 1200, 800, 10)
    CloseGadgetList()
  EndIf

  
  If OpenWindowedScreen(GadgetID(1), 0, 0, 600, 400, 0, 0, 0 ) 
;  If OpenWindowedScreen(WindowID(), 0, 0, 600, 400, 0, 0, 0 )
    Repeat 
    FlipBuffers()
    WEvent = WaitWindowEvent() 
    
    If WEvent = #WM_LBUTTONDOWN 
      Debug "Bouton gauche appuyé" 
      
    ElseIf WEvent = #WM_LBUTTONUP 
      Debug "Bouton gauche relaché" 
      
    ElseIf WEvent = #WM_LBUTTONDBLCLK 
      Debug "Double clic gauche" 
      
    ElseIf WEvent = #WM_RBUTTONDOWN 
      Debug "Bouton droit appuyé" 
      
    ElseIf WEvent = #WM_RBUTTONUP 
      Debug "Bouton droit relaché" 
      
    ElseIf WEvent = #WM_RBUTTONDBLCLK 
      Debug "Double clic droit" 
    EndIf
    Until WEvent = #WM_CLOSE
    EndIf
EndIf
PS:
La phrase dans l’historique de l’aide PB 3.92 suivante :
Un double-click sur le fond des fenêtres génère un évènement
Signifie t’elle que #CS_DBLCLKS est maintenant inclut au style de la fenêtre lorsqu’on la crée ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

J'ai fait plein d'essais mais sans résultat.

Pourtant la doc pour la commande EventType() dit ceci :
Syntaxe

Event = EventType()
Description

Utilisez cette fonction après WindowEvent() ou WaitWindowEvent() pour savoir quel est le type du dernier évènement survenu. Les valeurs suivantes sont possibles lorsqu'un évènement du type #PB_Event_Gadget ou #PB_Event_SysTray survient:
#PB_EventType_LeftClick : Click avec le bouton gauche de la souris
#PB_EventType_RightClick : Click avec le bouton droit de la souris
#PB_EventType_LeftDoubleClick : Double-click avec le bouton gauche de la souris
#PB_EventType_RightDoubleClick: Double-click avec le bouton droit de la souris
#PB_EventType_Focus : Un StringGadget() obtient le focus.
#PB_EventType_LostFocus : Un StringGadget() perd le focus.
#PB_EventType_Change : Le contenu d'un StringGadget() a changé.

OS Supportés

Windows, AmigaOS, Linux

Mais ça ne marche pas avec ce gadget. J'ai essayé aussi avec AdvancedGadgetEvents(), EventlParam() et EventwParam() mais sans succès.

Faudrait voir avec Fred. :cry:
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Je vais effecivement poster un message dans le rubrique "Rapports de bugs"
Répondre