On peut récupérer la couleur du fond, voir ici
http://www.purebasic.fr/english/viewtop ... und+colour
Code : Tout sélectionner
#id_rondblanc=100
#id_rond1=101
#Fenetre=0
OpenWindow(#Fenetre,0,0,500,500,"Rond")
If CreateImage(#id_rondblanc,30,30) And StartDrawing(ImageOutput(#id_rondblanc)) ;
Couleur_du_Fond=GetSysColor_(#COLOR_3DFACE);<-- windows seulement
Box(0,0,30,30,Couleur_du_Fond) ; on trace un rectangle de la couleur du fond
Circle(15,15,15,RGB(255,255,255))
StopDrawing()
EndIf
ImageGadget(#id_rond1,20,45,30,30,ImageID(#id_rondblanc))
Repeat
Event = WindowEvent()
Until Event = #PB_Event_CloseWindow
On peut aussi utiliser
On peut aussi utiliser le canal alpha :
Code : Tout sélectionner
CreateImage(0, 100, 100, 32)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, 100, 100, RGBA(0, 0, 0, 0))
DrawingMode(#PB_2DDrawing_AllChannels)
Box(25, 25, 51, 51, RGBA(255, 0, 0, 255))
DrawingMode(#PB_2DDrawing_AllChannels | #PB_2DDrawing_Outlined)
Circle(50, 50, 45, RGBA(0, 192, 40, 255))
Circle(51, 50, 45, RGBA(0, 192, 40, 255))
Circle(50, 51, 45, RGBA(0, 192, 40, 255))
Circle(49, 50, 45, RGBA(0, 192, 40, 255))
Circle(50, 49, 45, RGBA(0, 192, 40, 255))
StopDrawing()
OpenWindow(0, 0, 0, 512, 384, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
ImageGadget(0, 0, 0, 0, 0, ImageID(0))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Mesa.