Page 1 sur 1

Doc de EventlParam() et EventwParam()

Publié : dim. 07/nov./2004 13:21
par Anonyme2
Les liens sont morts dans le fichier d'aide, pas possible de voir les explications PB 3.92 et les Updates

Sinon pour AdvancedGadgetEvents(), il serait bien de mettre un exemple complet pour que cette commande soit bien comprise.

Merci

Publié : dim. 07/nov./2004 13:26
par Chris
A défaut d'exemple, si on pouvait au moins savoir à quoi ça correspond, parce que je me souviens que j'avais déjà demandé, mais j'attend toujours la réponse! :lol:

Publié : dim. 07/nov./2004 15:11
par Anonyme2
EventwParam() et EventlParam() récupèrent les valeurs des paramètres lParam et wParam sans passer par une Callback.

AdvancedGadgetEvents() permet d'activer ou non la gestion avancée des évènements pour les gadgets, type Left fdouble click ou autres (?) mais la doc est assez succinte et la Doc En dit qu'il faut se référer aux différents gadgets pour les événements (?).

Par exemple avec un Drag 'nd drop de fichiers sur une fenêtre, on récupère le fait que l'on vient de glisser des fichiers sur la fenêtre avec le message #WM_DROPFILES

wParam à ce moment contient le handle de la Structure qui contient les fichiers glissés et ce Handle pourra être utiliser par l'API DragQueryFile() pour récupérer les infos des fichiers

Dans la boucle, on récupère wParam avec EventwParam()

Voici un exemple simple, faut l'exécuter et ouvrir l'exploreur window, sélectionner quelques fichiers et les glisser sur la fenêtre.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 185, #PB_Window_SystemMenu |#PB_Window_ScreenCentered, "wParam")

   ; force la fenêtre à rester au premier plan
   SetWindowPos_(WindowID(), #HWND_TOPMOST, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)

   ; autorise la fenêtre à accepter les fichier Drag 'nd drop
   DragAcceptFiles_(WindowID(), #True)

Repeat
   Select WaitWindowEvent()
         Case #WM_DROPFILES

      ; *********************************
           DropHandle.l = EventwParam()
      ; *********************************
           
           ; lors du premier appel de DragQueryFile, on récupère le nombre de fichiers glissés
           NombreFichiers.l = DragQueryFile_(DropHandle, -1, "", 0)
   
           For index = 0 To NombreFichiers - 1
             ; cet appel de DragQueryFile retourne la taille nécessaire du buffer
              TailleBuffer.l = DragQueryFile_(DropHandle, index, 0, 0)
              Fichier.s = Space(TailleBuffer)
              TailleBuffer + 1
              DragQueryFile_(DropHandle, index, Fichier, TailleBuffer)
              Chaine.s = Chaine+ Fichier+Chr(10)
           Next

          DragFinish_(DropHandle)  ; c'est terminé, on libère les ressources
                                   ; allouées par le système
       
          ; la fenêtre ne restera pas au premier plan pour afficher la messagerequester
          SetWindowPos_(WindowID(), #HWND_NOTOPMOST, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)
          
          ; on affiche tous les fichiers
          MessageRequester("Fichiers", Chaine, #MB_ICONASTERISK|#PB_MessageRequester_Ok )
         

         Case #PB_EventCloseWindow
            quit + 1
      
   EndSelect
Until quit
EndIf

Publié : dim. 07/nov./2004 17:49
par Chris
Merci Denis, mais je parlais de AdvancedGadgetEvents(), pas de EventWParam() ou EventLParam()

Bon, ben je suis pas plus avancé, là :lol:

Publié : dim. 07/nov./2004 18:47
par Anonyme2
J'ai fait une recherche sur le forum En mais tout ça semble mal doumenté.

Ce que j'ai cru comprendre c'est que l'on a accès aux événements

#PB_EventType_RightClick
#PB_EventType_LeftDoubleClick
#PB_EventType_RightDoubleClick

en mettant AdvancedGadgetEvents(1) avant la création du gadget pour avoir accès à ces événements.

Ce que je me demande c'est quels gadgets sont concernés, faut-il le mettre pour chaque gadget etc :roll:

Publié : dim. 07/nov./2004 18:53
par Chris
J'avais cherché aussi, il y a un moment, mais j'ai pas trouvé grand chose non plus.

Faudrait que Fred documente un peu cette fonction.