Allez fait un petite code minimaliste comme ceux que tu as pu voir en y ajoutant un bouton un textgadget et un string.JohnJohnsonSHERMAN a écrit :Et voila !
image de fond
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: image de fond
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: image de fond
Ok, je sors me pendre dehors
C'est bizarre quand même que les gadgets ne soient pas affichés aprés et donc dessus le fond de la fenêtre... A mon avis le probléme vient du fait que l'affichage du gadget est vu comme un événement nécessitant #PB_Event_Repaint
***JohnJohnsonSHERMAN part bouder (et finir une maquette) loin du clavier
***


Code : Tout sélectionner
Enumeration
#Fenetre
#ImageDeFond
#Bouton
#Text
#String
EndEnumeration
LoadImage(#ImageDeFond,"D:\Images\Non classées\sherman.bmp")
OpenWindow(#Fenetre,0,0,600,400,"Essai",#PB_Window_ScreenCentered)
StartDrawing(WindowOutput(#Fenetre))
DrawImage(ImageID(#ImageDeFond),0,0,600,400)
StopDrawing()
ButtonGadget(#Bouton,10,10,100,30,"Zoli bouton")
TextGadget(#Text,10,50,200,20,"Ceci n'est pas un texte.")
StringGadget(#String,10,100,100,30,"Entrez du texte")
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget
;Faire ce qu'on veut des gadgets...
Case #PB_Event_Repaint;En cas d'effacement on redessine
StartDrawing(WindowOutput(#Fenetre))
DrawImage(ImageID(#ImageDeFond),0,0,600,400)
StopDrawing()
EndSelect
Until event = #PB_Event_CloseWindow
***JohnJohnsonSHERMAN part bouder (et finir une maquette) loin du clavier

"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: image de fond
Mais tes gadgets eux disparaissent jusqu'à ce que tu re-cliques dessus !JohnJohnsonSHERMAN a écrit : En effet, si la fenêtre est masquée, le fond disparait. Ces quelques lignes redessinent alors l'image sur la fenetre.
----edit----
Oups tu viens de le voir

Le plus simple comme l'a dit majikeyric c'est d'utiliser un gadget image que l'on "disable"
Je n'utilise pas l'éditeur mais ça doit pas être difficile de le faire avec.
Code : Tout sélectionner
; Creation du drapeau
Procedure Creation()
image = CreateImage(1,270,296,32,$0)
StartDrawing(ImageOutput(1))
Box(0, 0, 90, 296,$FF0000)
Box(90, 0, 90, 296,$FFFFFF)
Box(180, 0, 90, 296,$0000FF)
StopDrawing()
EndProcedure
; PROGRAMME PRINCIPAL
; ----------------------------------------------------
; Création de l'image du drapeau
; ----------------------------------------------------
Creation()
If OpenWindow(0, 0, 0, 270, 296, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageGadget(10,0,0,270,296,ImageID(1))
DisableGadget(10,1)
ButtonGadget (2, 40, 170, 200, 30, "Fermer")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 2
Quite=1
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow Or Quite = 1
End
EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: image de fond
Oui, cela se fait très bien avec le Form Designer, c'est ce que j'ai montré (voir exemple page précédente) après avoir vu l'exemple proposé par majikeyric.Ar-S a écrit : Le plus simple comme l'a dit majikeyric c'est d'utiliser un gadget image que l'on "disable"
Je n'utilise pas l'éditeur mais ça doit pas être difficile de le faire avec.
Faire un DisableGadget de l'image est effectivement le moyen simple et logique.


Re: image de fond
JohnJohnsonSHERMAN a écrit :Ok, je sors me pendre dehors![]()
![]()
C'est bizarre quand même que les gadgets ne soient pas affichés aprés et donc dessus le fond de la fenêtre... A mon avis le probléme vient du fait que l'affichage du gadget est vu comme un événement nécessitant #PB_Event_Repaint
***JohnJohnsonSHERMAN part bouder (et finir une maquette) loin du clavier***
non, moi j'aurai fait comme toi

il te manque juste un peu d'experience ...

Code : Tout sélectionner
Enumeration
#Fenetre
#ImageDeFond
#Bouton
#Text
#String
EndEnumeration
CreateImage(#ImageDeFond,640,400,32,$0)
StartDrawing(ImageOutput(#imagedefond))
For i=1 to 200
Circle(Random(620,20),Random(380,20),Random(50,10),Rgb(random(255,50),random(255,50),random(255,50)))
Next i
StopDrawing()
OpenWindow(#Fenetre,0,0,600,400,"Essai",#PB_Window_ScreenCentered)
StartDrawing(WindowOutput(#Fenetre))
DrawImage(ImageID(#ImageDeFond),0,0,600,400)
StopDrawing()
ButtonGadget(#Bouton,10,10,100,30,"Zoli bouton")
TextGadget(#Text,10,50,200,20,"Ceci n'est pas un texte.")
StringGadget(#String,10,100,100,30,"Entrez du texte")
Repeat
event=WaitWindowEvent(2)
Select event
Case #PB_Event_Gadget
;Faire ce qu'on veut des gadgets...
Case #PB_Event_Repaint;En cas d'effacement on redessine
StartDrawing(WindowOutput(#Fenetre))
DrawImage(ImageID(#ImageDeFond),0,0,600,400)
StopDrawing()
SetActiveGadget(#Bouton)
SetActiveGadget(#Text)
SetActiveGadget(#String)
EndSelect
Until event = #PB_Event_CloseWindow
Dernière modification par Zorro le mer. 24/août/2016 17:37, modifié 1 fois.
Re: image de fond
Avec les méthode DisableGadget (image), ça fait moins mal aux yeux
Bon, d'accord, on ne peut alors rien faire avec la souris sur l'image.


Code : Tout sélectionner
Enumeration
#Fenetre
#ImageDeFond
#Bouton
#Text
#String
#image
EndEnumeration
CreateImage(#ImageDeFond,640,400,32,$0)
StartDrawing(ImageOutput(#imagedefond))
For i=1 To 200
Circle(Random(620,20),Random(380,20),Random(50,10),RGB(Random(255,50),Random(255,50),Random(255,50)))
Next i
StopDrawing()
OpenWindow(#Fenetre,0,0,600,400,"Essai",#PB_Window_ScreenCentered)
; StartDrawing(WindowOutput(#Fenetre))
; DrawImage(ImageID(#ImageDeFond),0,0,600,400)
; StopDrawing()
; --- Ajout
ImageGadget(#image, 0,0,600,400, ImageID(#imagedefond))
DisableGadget(#image, 1)
; --- Fin ajout
ButtonGadget(#Bouton,10,10,100,30,"Zoli bouton")
TextGadget(#Text,10,50,200,20,"Ceci n'est pas un texte.")
StringGadget(#String,10,100,100,30,"Entrez du texte")
Repeat
event=WaitWindowEvent(2)
Select event
Case #PB_Event_Gadget
If EventGadget() = #Bouton
MessageRequester("Yeah!", "Less is more", 64)
EndIf
;Faire ce qu'on veut des gadgets...
; Case #PB_Event_Repaint;En cas d'effacement on redessine
; StartDrawing(WindowOutput(#Fenetre))
; DrawImage(ImageID(#ImageDeFond),0,0,600,400)
; StopDrawing()
; SetActiveGadget(#Bouton)
; SetActiveGadget(#Text)
; SetActiveGadget(#String)
EndSelect
Until event = #PB_Event_CloseWindow

Re: image de fond
@zorro
Lancer un SetActiveGadget pour tous les gadgets ça va si tu en as pas tout un tas mais en cas d'interface complexe c'est tout de même bien redondant.
Le disable c'est tout de même bien plus light.
Lancer un SetActiveGadget pour tous les gadgets ça va si tu en as pas tout un tas mais en cas d'interface complexe c'est tout de même bien redondant.
Le disable c'est tout de même bien plus light.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: image de fond
ho bah zavez qu'a faire comme ça
plus de soucis
(deplacez la fenetre )
plus de soucis

Code : Tout sélectionner
Declare.l mycallback(hwnd.l,umsg.l,wparam.l,lparam.l)
If OpenWindow(0,100,100,320,240,"",#PB_Window_SystemMenu|#PB_Window_SizeGadget)
ButtonGadget(1,5,5,100,50,"Hello")
EditorGadget(2,5,60,100,175)
SetWindowCallback(@myCallback(),0)
InvalidateRect_(WindowID(0),0,1)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Procedure.l myCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Select uMsg
Case #WM_ERASEBKGND
ProcedureReturn
Case #WM_PAINT
For i=1 To 2
x = GadgetX(i)
y = GadgetY(i)
SetRect_(Rect.RECT,x,y,x+GadgetWidth(i),y+GadgetHeight(i))
ValidateRect_(hWnd,Rect)
RedrawWindow_(GadgetID(i),0,0,$407)
Next
PaintDesktop_(BeginPaint_(hWnd,ps.PAINTSTRUCT))
EndPaint_(hWnd,ps)
Case #WM_SIZING,#WM_MOVING
InvalidateRect_(hWnd,0,1)
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
;
; Epb
Re: image de fond
Sympa ce petit code merci dobro
@++

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz