WindowOutput()

Syntaxe

Resultat = WindowOutput(#Fenetre)
Description
Renvoie la valeur OutputID d'une fenêtre nécessaire à la fonction StartDrawing() de la bibliothèque Dessin 2D pour effectuer les dessins 2D directement dessus.

Arguments

#Fenetre La fenêtre à utiliser.

Valeur de retour

Renvoie l'OutputID de la fenêtre afin d'effectuer un rendu 2D directement dessus.

Remarques

La mémoire allouée par WindowOutput() est libérée avec StopDrawing().

Le contenu dessiné sur une fenêtre sera effacé dès que la fenêtre ou une partie de cette dernière sera recouverte par une autre fenêtre, quand elle sera déplacée en dehors de l'écran ou quand elle sera cachée ou minimisée. Pour garder le contenu visible, il est obligatoire de le redessiner après chaque évènement #PB_Event_Repaint. Une manière plus confortable pour afficher un dessin sur une fenêtre est d'utiliser une image et ImageGadget() qu'il est possible de mettre à jour avec SetGadgetState(). Tout l'affichage sera géré par le gadget.

Exemple: Dessin sans #PB_Event_Repaint

  ; Faites disparaître une partie de la fenêtre en dehors de l'écran
  If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    ButtonGadget  (1, 10, 60, 200, 30, "Dessiner sur la fenêtre")
   
    Repeat
      Event = WaitWindowEvent()
          
      Select Event
     
        Case #PB_Event_Gadget
          Select EventGadget()
            Case 1
              ; Dessin d'un rectangle rouge sur la fenêtre
              If StartDrawing(WindowOutput(0))
                Box(10,10, 200, 30, RGB(255, 0, 0))
                StopDrawing()
              EndIf
                                                          
          EndSelect
            
      EndSelect
    Until Event = #PB_Event_CloseWindow
  EndIf

Exemple: Dessin avec #PB_Event_Repaint

  ; Faites disparaître une partie de la fenêtre en dehors de l'écran
  If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    Repeat
      Event = WaitWindowEvent()
      
      If Event = #PB_Event_Repaint 
        StartDrawing(WindowOutput(0))
          Box(10, 10, 50, 50, RGB(255, 0, 0)) 
        StopDrawing()
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf

Voir aussi

StartDrawing(), WindowVectorOutput()

OS Supportés

Tous

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