ImageGadget et encadrement

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

ImageGadget et encadrement

Message 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 ?
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: ImageGadget et encadrement

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ImageGadget et encadrement

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: ImageGadget et encadrement

Message par Anonyme2 »

Je vais regarder le canvas.

Merci
Répondre