Gadgets im Fullscreen
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Gadgets im Fullscreen
Hallo ihr Leut',
Kennt jemand ne gute Methode , Gadget im Fullscreen darzustellen?
Habe die Beispiele im Codearchiv schon ausprobiert.
NICHT zufriedenstellend. Die Gadgets verschwinden schnell.
Kennt jemand ne gute Methode , Gadget im Fullscreen darzustellen?
Habe die Beispiele im Codearchiv schon ausprobiert.
NICHT zufriedenstellend. Die Gadgets verschwinden schnell.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Gadgets sind Fenster: Ich glaub das war das vorherige Thema von dir.
Warum willst du Gadgets im DXScreen zeichnen?
Warum willst du Gadgets im DXScreen zeichnen?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:


Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
@Hroudtwolf:
So ... mein letzter Versuch ... hat Dir der folgende Code nicht weitergeholfen
Er stammt von St.Möbius aus dem Archiv :
Window im Fullscreen
Hiernochmal ein Beispiel für nen :
ScreenInputRequester
So ... mein letzter Versuch ... hat Dir der folgende Code nicht weitergeholfen

Er stammt von St.Möbius aus dem Archiv :
Window im Fullscreen
Code: Alles auswählen
!extrn _PB_DirectX_ScreenWidth
!extrn _PB_DirectX_ScreenHeight
!extrn _PB_DirectX_WindowedMode
!extrn _PB_DirectX_PrimaryBuffer
!extrn _PB_DirectX_BackBuffer
!extrn _PB_DDrawBase
Procedure AllowDisplayWindows()
Global _hBmp,_ScreenWidth,_ScreenHeight,_Windowed,_DDrawBase.IDirectDraw7,_FrontDDS.IDirectDrawSurface7,_BackDDS.IDirectDrawSurface7
!MOV Eax,[_PB_DirectX_WindowedMode]
!MOV [v__Windowed],Eax
If _Windowed=0
!MOV Eax,[_PB_DirectX_ScreenWidth]
!MOV [v__ScreenWidth],Eax
!MOV Eax,[_PB_DirectX_ScreenHeight]
!MOV [v__ScreenHeight],Eax
!MOV Eax,[_PB_DDrawBase]
!MOV [v__DDrawBase],Eax
!MOV Eax,[_PB_DirectX_BackBuffer]
!MOV [v__BackDDS],Eax
!MOV Eax,[_PB_DirectX_PrimaryBuffer]
!MOV [v__FrontDDS],Eax
_DDrawBase\GetGDISurface(@GDI_DDS.IDirectDrawSurface7)
If GDI_DDS=_BackDDS
_BackDDS\BltFast(0,0,_FrontDDS,0,0)
FlipBuffers()
EndIf
Else
GetClientRect_(ScreenID(),@re.RECT)
_ScreenWidth=re\right
_ScreenHeight=re\bottom
EndIf
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
_hBmp=CreateCompatibleBitmap_(DC,_ScreenWidth,_ScreenHeight)
oldBmp=SelectObject_(MemDC,_hBmp)
BitBlt_(MemDC,0,0,_ScreenWidth,_ScreenHeight,DC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
SelectObject_(MemDC,oldBmp)
DeleteDC_(MemDC)
ShowCursor_(-1)
EndProcedure
Procedure ScreenWindowCB(hWnd,Msg,wParam,lParam)
OldProc=GetWindowLong_(hWnd,#GWL_USERDATA)
Result=CallWindowProc_(OldProc,hWnd,Msg,wParam,lParam)
If Msg=#WM_PAINT Or Msg=#WM_MOVING Or Msg=#WM_MOVE Or Msg=#WM_ERASEBKGND
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
oldBmp=SelectObject_(MemDC,_hBmp)
BitBlt_(DC,0,0,_ScreenWidth,_ScreenHeight,MemDC,0,0,#SRCCOPY)
SelectObject_(MemDC,oldBmp)
DeleteDC_(MemDC)
ReleaseDC_(ScreenID(),DC)
EndIf
ProcedureReturn Result
EndProcedure
Procedure MakeScreenWindow(Nr)
OldCB=SetWindowLong_(WindowID(Nr),#GWL_WNDPROC,@ScreenWindowCB())
SetWindowLong_(WindowID(Nr),#GWL_USERDATA,OldCB)
SetWindowPos_(WindowID(Nr),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
EndProcedure
Procedure CloseScreenWindow(Nr)
SetWindowPos_(ScreenID(),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
CloseWindow(Nr)
SetWindowPos_(ScreenID(),#HWND_NOTOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
EndProcedure
Procedure StopDisplayWindows()
DeleteObject_(_hBmp)
ShowCursor_(-1)
EndProcedure
DisableDebugger
InitSprite()
InitKeyboard()
OpenScreen(1024,768,16,"Fullscreen Test")
Repeat
ExamineKeyboard()
StartDrawing(ScreenOutput())
Box(0,0,1024,768,#blue)
LineXY(0,0,1024,768,#green)
Locate(0,0)
DrawText("press Space")
StopDrawing()
FlipBuffers()
If KeyboardReleased(#PB_KEY_SPACE)
AllowDisplayWindows()
OpenWindow(2,0,0,200,100,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"MOVE ME")
MakeScreenWindow(2)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
CloseScreenWindow(2)
StopDisplayWindows()
EndIf
Until KeyboardPushed(#PB_KEY_ESCAPE)
Hiernochmal ein Beispiel für nen :
ScreenInputRequester
Code: Alles auswählen
!extrn _PB_DirectX_ScreenWidth
!extrn _PB_DirectX_ScreenHeight
!extrn _PB_DirectX_WindowedMode
!extrn _PB_DirectX_PrimaryBuffer
!extrn _PB_DirectX_BackBuffer
!extrn _PB_DDrawBase
Procedure ScreenRequesterCB(hWnd,Msg,wParam,lParam)
Addr=GetWindowLong_(hWnd,#GWL_USERDATA)
If Addr
Result=CallWindowProc_(PeekL(Addr),hWnd,Msg,wParam,lParam)
If Msg=#WM_DESTROY
GlobalFree_(Addr)
SetWindowLong_(hWnd,#GWL_USERDATA,0)
EndIf
If Msg=#WM_PAINT Or Msg=#WM_MOVING Or Msg=#WM_MOVE Or Msg=#WM_ERASEBKGND
DC=GetDC_(ScreenID())
BitBlt_(DC,0,0,PeekL(Addr+8),PeekL(Addr+12),PeekL(Addr+4),0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
EndIf
Else
Result=DefWindowProc_(hWnd,Msg,wParam,lParam)
EndIf
ProcedureReturn Result
EndProcedure
Procedure ScreenAlertBox(Title.s,Text.s,Buttons.s)
Global ScreenWidth,ScreenHeight,Windowed,DDrawBase.IDirectDraw7,BackDDS.IDirectDrawSurface7
!MOV Eax,[_PB_DirectX_WindowedMode]
!MOV [v_Windowed],Eax
!MOV Eax,[_PB_DirectX_ScreenWidth]
!MOV [v_ScreenWidth],Eax
!MOV Eax,[_PB_DirectX_ScreenHeight]
!MOV [v_ScreenHeight],Eax
If Windowed=0
!MOV Eax,[_PB_DDrawBase]
!MOV [v_DDrawBase],Eax
!MOV Eax,[_PB_DirectX_BackBuffer]
!MOV [v_BackDDS],Eax
DDrawBase\GetGDISurface(@GDI_DDS.IDirectDrawSurface7)
If GDI_DDS=BackDDS
BackDDS\BltFast(0,0,GDI_DDS,0,0)
FlipBuffers()
EndIf
EndIf
ShowCursor_(-1)
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
hBmp=CreateCompatibleBitmap_(DC,ScreenWidth,ScreenHeight)
oldBmp=SelectObject_(MemDC,hBmp)
BitBlt_(MemDC,0,0,ScreenWidth,ScreenHeight,DC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
If Font=0:Font=GetStockObject_(#SYSTEM_FONT):EndIf
Structure Button
Text.s
Width.l
EndStructure
Dim Button.Button(100)
Buttons+"|"
Text+Chr(13)
TmpDC=CreateCompatibleDC_(0)
SelectObject_(TmpDC,Font)
For M=1 To Len(Buttons)
If Mid(Buttons,M,1)="|"
GetTextExtentPoint32_(MemDC,@Str$,Len(Str$),sz.size)
Button(ButtonAnz)\Width=sz\cx+10
Button(ButtonAnz)\Text=Str$
If sz\cy+5>ButtonHeight:ButtonHeight=sz\cy+5:EndIf
GesButtonWidth=GesButtonWidth+sz\cx+10
Str$=""
ButtonAnz+1
Else
Str$=Str$+Mid(Buttons,M,1)
EndIf
Next
For M=1 To Len(Text)
If Mid(Text,M,1)=Chr(13)
GetTextExtentPoint32_(MemDC,@Str$,Len(Str$),sz.size)
TextHeight+sz\cy
If sz\cx+10>TextWidth:TextWidth=sz\cx+10:EndIf
Str$=""
Else
Str$=Str$+Mid(Text,M,1)
EndIf
Next
DeleteDC_(TmpDC)
WindowWidth=GesButtonWidth+10
If WindowWidth<150:WindowWidth=150:EndIf
If WindowWidth<TextWidth:WindowWidth=TextWidth:EndIf
WindowHeight=TextHeight+ButtonHeight+10
Flags=#PB_Window_ScreenCentered|#PB_Window_TitleBar
OpenWindow(1000,0,0,WindowWidth,WindowHeight,Flags,Title,ScreenID())
CreateGadgetList(WindowID())
TextGadget(0,XAbs,YAbs,WindowWidth,TextHeight,Text,#PB_Text_Center)
;SetGadgetFont(0,Font)
XAbs=(WindowWidth-GesButtonWidth)/2
YAbs=TextHeight
X=XAbs
For M=0 To ButtonAnz-1
ButtonGadget(M+2,X,YAbs,Button(M)\Width,ButtonHeight,Button(M)\Text)
;SetGadgetFont(M+2,Font)
X+Button(M)\Width
Next
OldCB=SetWindowLong_(WindowID(),#GWL_WNDPROC,@ScreenRequesterCB())
Addr=GlobalAlloc_(#GMEM_FIXED,16)
PokeL(Addr,OldCB)
PokeL(Addr+4,MemDC)
PokeL(Addr+8,ScreenWidth)
PokeL(Addr+12,ScreenHeight)
SetWindowLong_(WindowID(),#GWL_USERDATA,Addr)
Quit=0
Repeat
Event=WaitWindowEvent()
Gadget=EventGadgetID()
If Gadget>=2 And Gadget<ButtonAnz+2 And Event=#PB_Event_Gadget:Quit=1:EndIf
Until Quit=1
Result=Gadget-1
Repeat:Until WindowEvent()=0
ShowCursor_(0)
SetWindowPos_(ScreenID(),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
CloseWindow(1000)
SetWindowPos_(ScreenID(),#HWND_NOTOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
DC=GetDC_(ScreenID())
BitBlt_(DC,0,0,ScreenWidth,ScreenHeight,MemDC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
SelectObject_(MemDC,oldBmp)
DeleteObject_(hBmp)
DeleteDC_(MemDC)
ProcedureReturn Result
EndProcedure
Procedure.s ScreenInputRequester(Title$,Text$,Eing$)
Global ScreenWidth,ScreenHeight,Windowed,DDrawBase.IDirectDraw7,BackDDS.IDirectDrawSurface7
!MOV Eax,[_PB_DirectX_WindowedMode]
!MOV [v_Windowed],Eax
!MOV Eax,[_PB_DirectX_ScreenWidth]
!MOV [v_ScreenWidth],Eax
!MOV Eax,[_PB_DirectX_ScreenHeight]
!MOV [v_ScreenHeight],Eax
If Windowed=0
!MOV Eax,[_PB_DDrawBase]
!MOV [v_DDrawBase],Eax
!MOV Eax,[_PB_DirectX_BackBuffer]
!MOV [v_BackDDS],Eax
DDrawBase\GetGDISurface(@GDI_DDS.IDirectDrawSurface7)
If GDI_DDS=BackDDS
BackDDS\BltFast(0,0,GDI_DDS,0,0)
FlipBuffers()
EndIf
EndIf
ShowCursor_(-1)
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
hBmp=CreateCompatibleBitmap_(DC,ScreenWidth,ScreenHeight)
oldBmp=SelectObject_(MemDC,hBmp)
BitBlt_(MemDC,0,0,ScreenWidth,ScreenHeight,DC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
Flags=#PB_Window_ScreenCentered|#PB_Window_TitleBar
OpenWindow(1000,0,0,320,90,Flags,Title$,ScreenID())
OldCB=SetWindowLong_(WindowID(),#GWL_WNDPROC,@ScreenRequesterCB())
Addr=GlobalAlloc_(#GMEM_FIXED,16)
PokeL(Addr,OldCB)
PokeL(Addr+4,MemDC)
PokeL(Addr+8,ScreenWidth)
PokeL(Addr+12,ScreenHeight)
SetWindowLong_(WindowID(),#GWL_USERDATA,Addr)
CreateGadgetList(WindowID())
TextGadget(1,0,0,320,60,Text$)
gadget=StringGadget(2,0,60,270,20,Eing$)
ButtonGadget(3,275,60,40,20,"&Ok",#PB_Button_Default)
SetFocus_(gadget)
SendMessage_(gadget,#EM_SETSEL,0,Len(Eing$))
SetWindowPos_(WindowID(),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
Quit=0
Repeat
Event=WaitWindowEvent()
If EventGadgetID()=3 And Event=#PB_Event_Gadget:Quit=1:EndIf
Until Quit=1
Result.s=GetGadgetText(2)
Repeat:Until WindowEvent()=0
ShowCursor_(0)
SetWindowPos_(ScreenID(),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
CloseWindow(1000)
SetWindowPos_(ScreenID(),#HWND_NOTOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
DC=GetDC_(ScreenID())
BitBlt_(DC,0,0,ScreenWidth,ScreenHeight,MemDC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
SelectObject_(MemDC,oldBmp)
DeleteObject_(hBmp)
DeleteDC_(MemDC)
ProcedureReturn Result.s
EndProcedure
;Beispiel:
InitKeyboard()
InitSprite()
InitMouse()
OpenScreen(640,480,16,"ScreenRequester")
;OpenWindow(1,0,0,640,480,1,"ScreenRequester")
;OpenWindowedScreen(WindowID(),0,0,640,480,1,0,0)
CreateSprite(1,640,480)
StartDrawing(SpriteOutput(1))
Box(0,0,640,480,#blue)
Circle(320,240,200,#green)
StopDrawing()
S=GetTickCount_()
Repeat
DisplaySprite(1,0,0)
FlipBuffers()
If GetTickCount_()-S>2500
Text$="This is a text"+Chr(13)
Text$+"This is a text"+Chr(13)
Text$+"This is a text"+Chr(13)
Text$+"This is a text"+Chr(13)
ScreenInputRequester("ScreenInputRequester",Text$,"Text")
If ScreenAlertBox("ScreenAlertBox",Text$+"Quit ?","&Yes|&No")=1:Quit=1:EndIf
S=GetTickCount_()
EndIf
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
Sorry fürs pushen - ist ja schon etwas älter der Thread.
obiges Beispiel geht bei mir nicht (PB 4.3) ich bekomme da einen Fehler:
POLINK: error: Unresolved external symbol '_PB_DirectX_WindowedMode'.
POLINK: error: Unresolved external symbol '_PB_DirectX_ScreenWidth'.
POLINK: error: Unresolved external symbol '_PB_DirectX_ScreenHeight'.
...hat jemand ne Idee wie man den Code zum Laufen bekommt?
vielen herzlichen Dank schonmal.
obiges Beispiel geht bei mir nicht (PB 4.3) ich bekomme da einen Fehler:
POLINK: error: Unresolved external symbol '_PB_DirectX_WindowedMode'.
POLINK: error: Unresolved external symbol '_PB_DirectX_ScreenWidth'.
POLINK: error: Unresolved external symbol '_PB_DirectX_ScreenHeight'.
...hat jemand ne Idee wie man den Code zum Laufen bekommt?
vielen herzlichen Dank schonmal.
Das heir finde ich sehr gelungen
http://www.purebasic.fr/german/viewtopi ... een+gadget
aber ich glaube das viele Leute hie rim Forum schon ihre "eigenen" ScreenGadget-Procedure geschrieben haben, da ja viele so kleine Sachen wie Buttons, StringGadget, Fenster, usw. brauchten ...
Klar ist das mit einem gewissen aufwand verbunden, aber wenn du eh nur bestimmte Sachen brauchst, kannst du die selber erstellen...
Ich selber habe sowas schon mehrfach gemacht, nur leider nie so weit, das man es weiter geben könnte ...
http://www.purebasic.fr/german/viewtopi ... een+gadget
aber ich glaube das viele Leute hie rim Forum schon ihre "eigenen" ScreenGadget-Procedure geschrieben haben, da ja viele so kleine Sachen wie Buttons, StringGadget, Fenster, usw. brauchten ...
Klar ist das mit einem gewissen aufwand verbunden, aber wenn du eh nur bestimmte Sachen brauchst, kannst du die selber erstellen...
Ich selber habe sowas schon mehrfach gemacht, nur leider nie so weit, das man es weiter geben könnte ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Die Funktionen gibts nicht mehr, aber mit ein bissel improvisieren

Code: Alles auswählen
!extrn _PB_DirectX_PrimaryBuffer
!extrn _PB_DirectX_BackBuffer
!extrn _PB_DDrawBase
Procedure AllowDisplayWindows(ScreenWidth, ScreenHeight, Windowed)
Global _hBmp,_ScreenWidth,_ScreenHeight,_Windowed,_DDrawBase.IDirectDraw7,_FrontDDS.IDirectDrawSurface7,_BackDDS.IDirectDrawSurface7
_ScreenWidth = ScreenWidth
_ScreenHeight = ScreenHeight
_Windowed = Windowed
If _Windowed=0
!MOV Eax,[_PB_DDrawBase]
!MOV [v__DDrawBase],Eax
!MOV Eax,[_PB_DirectX_BackBuffer]
!MOV [v__BackDDS],Eax
!MOV Eax,[_PB_DirectX_PrimaryBuffer]
!MOV [v__FrontDDS],Eax
_DDrawBase\GetGDISurface(@GDI_DDS.IDirectDrawSurface7)
If GDI_DDS=_BackDDS
_BackDDS\BltFast(0,0,_FrontDDS,0,0)
FlipBuffers()
EndIf
Else
GetClientRect_(ScreenID(),@re.RECT)
_ScreenWidth=re\right
_ScreenHeight=re\bottom
EndIf
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
_hBmp=CreateCompatibleBitmap_(DC,_ScreenWidth,_ScreenHeight)
oldBmp=SelectObject_(MemDC,_hBmp)
BitBlt_(MemDC,0,0,_ScreenWidth,_ScreenHeight,DC,0,0,#SRCCOPY)
ReleaseDC_(ScreenID(),DC)
SelectObject_(MemDC,oldBmp)
DeleteDC_(MemDC)
ShowCursor_(-1)
EndProcedure
Procedure ScreenWindowCB(hWnd,Msg,wParam,lParam)
OldProc=GetWindowLong_(hWnd,#GWL_USERDATA)
Result=CallWindowProc_(OldProc,hWnd,Msg,wParam,lParam)
If Msg=#WM_PAINT Or Msg=#WM_MOVING Or Msg=#WM_MOVE Or Msg=#WM_ERASEBKGND
DC=GetDC_(ScreenID())
MemDC=CreateCompatibleDC_(DC)
oldBmp=SelectObject_(MemDC,_hBmp)
BitBlt_(DC,0,0,_ScreenWidth,_ScreenHeight,MemDC,0,0,#SRCCOPY)
SelectObject_(MemDC,oldBmp)
DeleteDC_(MemDC)
ReleaseDC_(ScreenID(),DC)
EndIf
ProcedureReturn Result
EndProcedure
Procedure MakeScreenWindow(Nr)
OldCB=SetWindowLong_(WindowID(Nr),#GWL_WNDPROC,@ScreenWindowCB())
SetWindowLong_(WindowID(Nr),#GWL_USERDATA,OldCB)
SetWindowPos_(WindowID(Nr),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
EndProcedure
Procedure CloseScreenWindow(Nr)
SetWindowPos_(ScreenID(),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
CloseWindow(Nr)
SetWindowPos_(ScreenID(),#HWND_NOTOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
EndProcedure
Procedure StopDisplayWindows()
DeleteObject_(_hBmp)
ShowCursor_(-1)
EndProcedure
DisableDebugger
InitSprite()
InitKeyboard()
OpenScreen(1024,768,16,"Fullscreen Test")
Repeat
ExamineKeyboard()
StartDrawing(ScreenOutput())
Box(0,0,1024,768,#Blue)
LineXY(0,0,1024,768,#Green)
DrawText(0,0,"press Space")
StopDrawing()
FlipBuffers()
If KeyboardReleased(#PB_Key_Space)
AllowDisplayWindows(1024,768,0)
OpenWindow(2,0,0,200,100,"MOVE ME",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
MakeScreenWindow(2)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
CloseScreenWindow(2)
StopDisplayWindows()
EndIf
Until KeyboardPushed(#PB_Key_Escape)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
