He bien non !
C'est sur cela marche, mais voilà, pour redimenssioner mes gadget j'utilise une petit procedure automatique :
Elle liste tous les gadget avec leur taille, dans la taille de fenetre défini. Et elle réadapte les gadget suivant la nouvelle valeur de la taille de la fenetre.
Bien sur je pourrais tout changer mais elle me simplifie énormément la vie, et j'aimerais la garder. Je l'avais posté dans truc et astuce, je la remet là :
Code : Tout sélectionner
.Enumeration
#gadget
EndEnumeration
Procedure sauve_taille_gadget(id_window)
Structure gadget
id.l
x.l
y.l
l.l
h.l
EndStructure
Global Rectangle_affichage.RECT
Global Dim gadget.gadget(1)
nb_gadget=0
For num_gadget=0 To #PB_Compiler_EnumerationValue
If IsGadget(num_gadget)
nb_gadget=nb_gadget+1
Redim gadget.gadget(nb_gadget)
gadget(nb_gadget)\id=num_gadget
gadget(nb_gadget)\x=GadgetX(num_gadget)
gadget(nb_gadget)\y=GadgetY(num_gadget)
gadget(nb_gadget)\h=GadgetHeight(num_gadget)
gadget(nb_gadget)\l=GadgetWidth(num_gadget)
EndIf
Next
gadget(0)\id=nb_gadget
gadget(0)\h=WindowHeight(id_window)
gadget(0)\l=WindowWidth(id_window)
Rectangle_affichage\left = 0
Rectangle_affichage\top = 0
Rectangle_affichage\right = WindowHeight(id_window)
Rectangle_affichage\bottom =WindowWidth(id_window)
EndProcedure
Procedure resize_gadget(id_window)
; rajouter dans le programme
;Case #PB_Event_SizeWindow
; resize_gadget(#Fenetre_base)
hw=gadget(0)\h
lw=gadget(0)\l
nhw=WindowHeight(id_window)
nlw=WindowWidth(id_window)
For num_gadget=1 To gadget(0)\id
If IsGadget(gadget(num_gadget)\id)
nx=gadget(num_gadget)\x*nlw/lw
ny=gadget(num_gadget)\y*nhw/hw
nh=gadget(num_gadget)\h*nhw/hw
nl=gadget(num_gadget)\l*nlw/lw
ResizeGadget(gadget(num_gadget)\id,nx,ny,nl,nh)
EndIf
Next
Rectangle_affichage\left = 0
Rectangle_affichage\top = 0
Rectangle_affichage\right = nhw
Rectangle_affichage\bottom = nlw
InvalidateRect_(WindowID(id_window), @Rectangle_affichage, #True)
EndProcedure
OpenWindow(1, 284, 247, 800, 600, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Programme")
CreateGadgetList(WindowID(1))
StringGadget(#gadget,10,10,200,20,"")
sauve_taille_gadget(1)
;ExamineDesktops()
;ResizeWindow(1, 0, 0, DesktopWidth(0), DesktopHeight(0))
;SendMessage_(WindowID(1),#WM_SYSCOMMAND, #SC_MAXIMIZE,0)
;HideWindow(1,0)
Repeat
event=WaitWindowEvent()
If EventWindow()=1
If event=#WM_CLOSE
Quit=1
EndIf
If event=#PB_Event_SizeWindow
Debug "resize"
resize_gadget(1)
EndIf
EndIf
Until Quit=1