Page 1 sur 1

Dimenssionement d'un ScrollAreaGadget

Publié : sam. 23/juil./2005 12:09
par olivier
Salut à tous

Voilà je voudrais bien controler les ScrollAreaGadget :
1- Comment les redimenssioner (taille interieur)
2- Comment les déplacer (remonter automatiquement tout en haut)
3- Comment les faire fonctionner avec la molette

Mes solutions mais j'attends mieux....
1- ????
2- SetScrollPos_(GadgetID(#scrollgadget),#SB_VERT,0,1)
Mais ça n'a pas l'aire de bien marcher
3- Récuperer l'action sur la molette et déplacer la fenetre avec SetScrollPos....

Merci d'avance si vous avez mieux

Publié : sam. 23/juil./2005 22:11
par Jacobus
Salut Olivier, je viens de poster un code dans "Trucs et Astuces" qui pourra t'aider pour le redimensionnement d'un scrollareagadget. C'est un images viewer relativement simple qui peut être un exemple de départ.

@+ Jacobus

Publié : sam. 23/juil./2005 22:44
par nico
Voici un code d'exempe pour gérer la molette.

Code : Tout sélectionner

;Application du message WM_MOUSEWEEL 

#WM_MOUSEWHEEL = $20A 
Global Hscroll.l 

Procedure ProcedureCallback(WindowID, Message, wParam, lParam) 
  Resultat = #PB_ProcessPureBasicEvents 
  ;Debug Message 
  Select Message 
    Case #WM_MOUSEWHEEL 
      hi.w=(wParam>>16) 
      lo.w=wParam & $FFFF 
      
      If lo.w & #MK_MBUTTON 
        ;indique le click de la molette seulement si celle-ci tourne 
        MessageRequester("Info", "Click de la molette") 
      EndIf 
      
      coef=4 
      delta=hi*coef 
      Debug delta 
      
      While delta>120 
        SendMessage_(Hscroll, #WM_VSCROLL, #SB_LINEUP, 0) 
        delta=delta-(120+coef) 
      Wend 
      
      While delta< -120 
        SendMessage_(Hscroll, #WM_VSCROLL, #SB_LINEDOWN, 0) 
        delta=delta+(120+coef) 
      Wend 

  EndSelect 
  
  ProcedureReturn Resultat 
EndProcedure 
  

If OpenWindow(0,0,0,400,400,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ScrollAreaGadget") And CreateGadgetList(WindowID(0)) 
  Hscroll=ScrollAreaGadget(0, 10, 10,360,300, 340, 800, 30) 
  ButtonGadget  (1, 10, 140,230, 30,"Button 1") 
  CloseGadgetList() 
    
  SetWindowCallback(@ProcedureCallback()) 

  Repeat 
    EventID.l=WaitWindowEvent() 
    Select EventID 
      Case #PB_EventGadget 
        Select EventGadgetID() 
          Case 1 

        EndSelect 
          
      Case #WM_CLOSE 
        Quit=1 
    EndSelect 
  Until Quit=1 
EndIf

Publié : dim. 24/juil./2005 9:20
par olivier
@Jocobus

Miam miam ton exemple dans truc et astuce, il répond à ma question et en plus il ouvre la porte de l'impression.....

@Nico

Ben y a plus qu'a transposer, ce petit code pour faire bouger ma fenetre. Impeccable

Merci à vous et bonne journée