Page 1 sur 1

ImageGadget et encadrement

Publié : sam. 19/sept./2015 9:23
par Anonyme2
Salut à tous,

j'ai testé plein de petite chose pour encadrer une image dans une imagegadget.

Ce que je voudrais c'est un cadre plat (non enfoncé non surélevé) mais je ne suis pas parvenu à trouver.
Je souhaite ne pas redessiner sur l'image avec les fonctions PB ou API.

J'utilise ce code du forum anglais mais qui donne un cadre surélevé :

Code : Tout sélectionner

      ;//retrouve l'état du bouton et encadre ou non l'image
      ;// mémorise les données du bouton de la toolbar de la rebar des images
      Protected zz.TBBUTTON
      ;// #Button_EncadrerImage = index 1
      If SendMessage_(GLB_hToolBar_ContainerImage, #TB_GETBUTTON, 1, @zz)
            Select zz\fsState & (#TBSTATE_CHECKED|#TBSTATE_ENABLED)
                  Case (#TBSTATE_CHECKED|#TBSTATE_ENABLED)
                        ;// On ajoute la bordure au Gadget
                        SetWindowLongPtr_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget), #GWL_EXSTYLE, GetWindowLongPtr_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget), #GWL_EXSTYLE) | #SS_ETCHEDVERT|#WS_EX_STATICEDGE)
                        SetWindowPos_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget),0,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE|#SWP_FRAMECHANGED)
                        
                  Case (#TBSTATE_ENABLED)
                        ;// On retire la bordure au Gadget
                        SetWindowLongPtr_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget), #GWL_EXSTYLE, GetWindowLongPtr_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget), #GWL_EXSTYLE) & ~(#WS_EX_STATICEDGE|#SS_ETCHEDVERT))
                        SetWindowPos_(GadgetID(GLB_Displayed_Container_ScrollArea_Images()\ImageGadget),0,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE|#SWP_FRAMECHANGED)
            EndSelect
      EndIf
une idée ?

Re: ImageGadget et encadrement

Publié : sam. 19/sept./2015 10:24
par microdevweb
Je ne sais si cela peu t’aider voici un code avec un cadre simple

Code : Tout sélectionner

CreateImage(0,580,380)
StartDrawing(ImageOutput(0))
Box(0,0,580,380,$00A5FF)
StopDrawing()
OpenWindow(0,0,0,800,600,"teste",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ContainerGadget(0,100,100,600,400,#PB_Container_Flat)
ImageGadget(1,10,10,580,380,ImageID(0))
CloseGadgetList()
Repeat
      Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
End

Re: ImageGadget et encadrement

Publié : sam. 19/sept./2015 11:08
par Anonyme2
Salut microdevweb,

c'est justement ce que j'aimerais éviter mais je finirais par le faire si je ne trouve pas.
J'ai lu la doc MS en long et en large et même en travers mais je n'ai pas trouvé.

Une autre solution c'est un container qui englobe l'image gadget mais je trouve cela très lourd.

Merci

Re: ImageGadget et encadrement

Publié : sam. 19/sept./2015 12:43
par Anonyme2
Je vais regarder le canvas.

Merci