OpenWindow()

Syntaxe

Resultat = OpenWindow(#Fenetre, x, y, LargeurInterne, HauteurInterne, Titre$ [, Options [, FenetreMereID]])
Description
Ouvre une nouvelle fenêtre avec les paramètres spécifiés. Si #PB_Any est utilisé pour le paramètre '#Fenetre', le numéro de la fenêtre sera renvoyé dans 'Resultat'.
La nouvelle fenêtre devient la fenêtre active sans avoir besoin d'utiliser SetActiveWindow() (sauf si elle a été créée en mode invisible). Si Resultat = 0, la fenêtre ne peut être ouverte.

'LargeurInterne' et 'HauteurInterne' spécifient les dimensions nécessaires pour la zone interne de la fenêtre (sans les bordures et la barre de titre) afin d'assurer la compatibilité avec les systèmes d'habillage des fenêtres propres à Windows XP, AmigaOS et Linux (la taille des bordures peut en effet varier selon la police et/ou le thème utilisé). 'x' et 'y' indiquent la position initiale de la fenêtre (sauf si l'une des options de centrage est utilisée). Si l'une d'elle est #PB_Ignore, le système choisira une position pour la fenêtre.

Le paramètre 'FenetreMereID' est facultatif et indique de quelle fenêtre la nouvelle fenêtre dépend. 'FenetreMereID' peut être obtenu facilement par la commande WindowID().

Les options possibles sont:
  #PB_Window_SystemMenu     : Autorise le menu système sur la barre de titre.
  #PB_Window_MinimizeGadget : Ajoute l'icône 'Réduire' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
  #PB_Window_MaximizeGadget : Ajoute l'icône 'Agrandir' sur la barre de titre. #PB_Window_SystemMenu est ajouté automatiquement.
                              (MacOS : #PB_Window_SizeGadget sera également ajouté automatiquement).
  #PB_Window_SizeGadget     : Ajoute les possibilités de redimensionnement à la fenêtre.
  #PB_Window_Invisible      : Crée la fenêtre mais ne l'affiche pas. Non supporté sur AmigaOS.
  #PB_Window_TitleBar       : Crée la fenêtre avec une barre de titre.
  #PB_Window_BorderLess     : Crée une fenêtre sans bordure.
  #PB_Window_Tool           : Crée une fenêtre avec une barre de titre plus fine, et non visible dans la barre des tâches.
  #PB_Window_ScreenCentered : Centre la fenêtre au milieu de l'écran. Les paramètres x,y sont ignorés.
  #PB_Window_WindowCentered : Centre la fenêtre au milieu de la fenêtre mère ('FenetreMereID' doit être spécifié). Les paramètres x,y sont ignorés.
  #PB_Window_Maximize       : Ouvre la fenêtre en mode maximisé. (Note: sous Linux, certains gestionnaires de fenêtres ne supportent pas cela)
  #PB_Window_Minimize       : Ouvre la fenêtre en mode minimisé.
  #PB_Window_NoGadgets      : Empêche la création d'une GadgetList. UseGadgetList() peut être utilisé pour le faire plus tard.
  #PB_Window_NoActivate     : Ne pas activer la fenêtre après son ouverture.
Si le paramètre facultatif 'Options' n'est pas renseigné, #PB_Window_SystemMenu sera utilisé.

Tous les évènements possibles dans une fenêtre sont gérés par les commandes WindowEvent() et WaitWindowEvent(). Pour les situations spéciales les callbacks sont utilisées, voir la description de SetWindowCallback(). Sous Windows, la largeur et la hauteur d'une fenêtre avec une bordure ne peuvent pas être inférieur à environ 100 pixels. Pour ouvrir une fenêtre plus petite, utiliser l'option #PB_Window_BorderLess.

Note: Une fenêtre ne devrait pas être ouverte dans un thread, car il y a une limitation sur OS X et Linux. Une erreur débogueur sera levée. Quand une fenêtre est ouverte dans un thread, le thread doit appeler WindowEvent() ou WaitWindowEvent() dans une boucle pour gérer les évènements pour cette fenêtre, car les évènements des fenêtres sont propres à chaque thread.

Exemple

  If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

   ButtonGadget  (1, 10, 60, 200, 30, "Fermer")
   
   Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 1 
              CloseWindow(0)
              End  
         EndSelect
            
     EndSelect
   Until Event = #PB_Event_CloseWindow
 EndIf

OS Supportés

Tous

<- IsWindow() - Window Index - PostEvent() ->