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

<- WindowMouseY() - Window Inhaltsverzeichnis - WindowVectorOutput() ->