Weiss zwar nicht ob das dies der richtige weg ist, funktioniert aber recht gut.
Code: Alles auswählen
Procedure LS()
CreateSprite(0,20,20)
StartDrawing(SpriteOutput(0))
Box(0,0,20,20,$874178)
StopDrawing()
EndProcedure
Procedure OS()
result = OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)
If result
LS()
EndIf
ProcedureReturn result
EndProcedure
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 320, 140, "A screen in a window...", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(320)
StatusBarText(0, 0, "Automatically zoomed screen area when changing window size...")
EndIf
OS()
EndIf
Repeat
; Es ist sehr wichtig, alle im Queue befindlichen Ereignisse während jedes Frames abzuarbeiten
;
Repeat
Event = WaitWindowEvent(0)
If Event = #PB_Event_SizeWindow
CloseScreen()
OS()
EndIf
If Event = #PB_Event_CloseWindow
End
EndIf
Until Event = 0
DisplaySprite(0,10,10)
FlipBuffers()
ClearScreen(RGB(0, 0, 200))
Delay(1)
ForEver