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