WindowOutput()
Syntax
AusgabeID = WindowOutput(#Window)Beschreibung
Gibt die 'AusgabeID' des angegebenen Fensters zurück, um darauf 2D-Zeichenoperationen auszuführen. Hierfür wird die PureBasic 2DDrawing Bibliothek genutzt.
WindowOutput() kann nur innerhalb eines StartDrawing() / StopDrawing() Blocks verwendet werden. Der von WindowOutput() reservierte Speicher wird beim Aufruf von StopDrawing() freigegeben.
Parameter
#Window Das zu verwendende Fenster.
Rückgabewert
Die AusgabeID des angegebenen Fensters, um darauf 2D-Zeichenoperationen mittels StartDrawing() auszuführen.
Beispiel
If OpenWindow(0, 0, 0, 220, 100, "Example...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Repaint ; Erneut auf dem Fenster zeichnen, jedes Mal wenn das Fenster neu gezeichnet wird
StartDrawing(WindowOutput(0))
Box(10, 10, 50, 50, RGB(255, 0, 0))
StopDrawing()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Anmerkungen
Auf ein Fenster gezeichneter Inhalt wird gelöscht, wann immer das Fenster oder ein Teil davon von einem anderen Fenster verdeckt wird, außerhalb des Bildschirms verschoben wird, oder wenn das Fenster versteckt oder minimiert wird. Um daher den gezeichneten Inhalt sichtbar zu halten, muss dieser nach jedem #PB_Event_Repaint Ereignis erneut gezeichnet werden.
Eine komfortablere Lösung ist es, den Inhalt via ImageOutput() auf ein Bild zu zeichnen und dieses als ImageGadget() im Applikations-Fenster darzustellen, und wenn nötig dessen Aktualisierung mittels SetGadgetState(). Auf diesem Weg wird jegliches nötige Auffrischen durch das ImageGadget erledigt.
Beispiel
If OpenWindow(0, 0, 0, 220, 100, "Beispiel...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget (1, 10, 60, 200, 30, "Auf das Fenster zeichnen")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
; Zeichnet einen roten Kasten auf das Fenster
If StartDrawing(WindowOutput(0))
Box(10,10, 200, 30, RGB(255, 0, 0))
StopDrawing()
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Siehe auch
StartDrawing(), WindowVectorOutput()
Unterstützte OS
Alle