Code: Alles auswählen
UsePNGImageDecoder()
EnableExplicit
Enumeration
#window_0
EndEnumeration
;Images
DataSection
pic_1_Start:
IncludeBinary "your_picture.png"
pic_1_End:
EndDataSection
DataSection
MyData1:
IncludeBinary "your_picture.png"
EndOfMyData1:
EndDataSection
DataSection
MyData2:
IncludeBinary "your_picture.png"
EndOfMyData2:
EndDataSection
Procedure WindowBackground(Window.i, Image.i)
Protected WindowID.i = WindowID(0)
Protected ImageID.i = ImageID(Image)
Protected HDC.i = CreateCompatibleDC_(#Null)
Protected Object.i = SelectObject_(HDC, ImageID)
Protected Size.Size
Size\cx = ImageWidth(Image)
Size\cy = ImageHeight(Image)
Protected Point.Point
Protected Blend.BLENDFUNCTION
Blend\SourceConstantAlpha = 255
Blend\AlphaFormat = 1
SetWindowLong_(WindowID, #GWL_EXSTYLE, GetWindowLong_(WindowID, #GWL_EXSTYLE) | #WS_EX_LAYERED)
UpdateLayeredWindow_(WindowID, 0, 0, @Size, HDC, @Point, 0, @Blend, 2)
SelectObject_(HDC, Object)
DeleteDC_(HDC)
EndProcedure
Define pic_1 ; PNG Bild
Define pic_2 ; Bild auf dem gezeichnet wird
Define sprite_1 ; PNG Bild 2
Define sprite_2 ; Bild 2 auf dem gezeichnet wird
Define exit_1 ; PNG Bild 3
Define exit_2 ; Bild 3 auf dem gezeichnet wird
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
OpenWindow(0, 0, 0, 887, 520, "Fenster", #PB_Window_BorderLess | #PB_Window_ScreenCentered );| #PB_Window_Invisible)
Sprite_1 = CatchImage(#PB_Any, ?MyData1, ?EndOfMyData1 - ?MyData1) ; Logo aus dem Speicher laden
Sprite_2 = CreateImage(#PB_Any,887,300,32|#PB_Image_Transparent) ; Bild 2 erstellen
exit_1 = CatchImage(#PB_Any, ?MyData2, ?EndOfMyData2 - ?MyData2) ; Logo aus dem Speicher laden
exit_2 = CreateImage(#PB_Any,50,50,32|#PB_Image_Transparent) ; Bild 3 erstellen
pic_1 = CatchImage(#PB_Any, ?Pic_1_Start, ?Pic_1_End - ?Pic_1_Start) ; Logo aus dem Speicher laden
pic_2 = CreateImage(#PB_Any,887,520,32|#PB_Image_Transparent) ; Bild 1 erstellen
If StartDrawing(ImageOutput(pic_2))
DrawAlphaImage(ImageID(pic_1),0,0,255) ; PNG Bild 1
DrawAlphaImage(ImageID(Sprite_1),0,150,255) ; PNG Bild 2
DrawAlphaImage(ImageID(exit_1),800,0,255) ; PNG Bild 3
StopDrawing()
EndIf
WindowBackground(#window_0, pic_2) ; PNG 2 als Hintergrund verwenden.
Repeat
; Catch Screen with left Mouse Button
Select WaitWindowEvent()
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
Case 258
Break
EndSelect
Select Event
EndSelect
Until event = #PB_Event_CloseWindow