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