WaitWindowEvent()

Syntaxe

Evenement = WaitWindowEvent([Minuteur])
Description
Bloque l'exécution du programme jusqu'à ce qu'un évènement intervienne. Cette fonction est identique à WindowEvent(), mais le blocage de l'exécution est très important dans un environnement multi-tâches.

Une application devrait, si possible, toujours utiliser cette fonction en préférence à WindowEvent(). Pour plus d'informations sur les évènements supportés, voir WindowEvent().

Le paramètre optionnel 'Minuteur' permet de spécifier le temps maximal (en millisecondes) durant lequel la fonction sera bloquante si aucun évènement ne survient.

Notes: 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.

WaitWindowEvent() ne peut être appelé qu'une seule fois par boucle d'évènements, sinon les évènements seront "perdus" (chaque événement ne peut être traité qu'une seule fois et n'est plus disponible pour un deuxième traitement).

Exemple:

  If OpenWindow(0, 0, 0, 230, 90, "Exemple de gestion des évènements...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

   If CreateGadgetList(WindowID(0))
     ButtonGadget  (1, 10, 10, 200, 20, "Cliquez moi")
     CheckBoxGadget(2, 10, 40, 200, 20, "Cochez  moi")
   EndIf

   If CreateMenu(0, WindowID(0))
     MenuTitle("Menu")
     MenuItem(1, "Item 1")
     MenuItem(2, "Item 2")
     MenuItem(3, "Item 3")
   EndIf

   Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 1 : Debug "Bouton 1 cliqué!"
           Case 2 : Debug "Bouton 2 cliqué!"
           Case 3 : Debug "Bouton 3 cliqué!"
         EndSelect
       
       Case #PB_Event_Menu
         Select EventMenu()
           Case 1 : Debug "Menu item 1 cliqué!"
           Case 2 : Debug "Menu item 2 cliqué!"
           Case 3 : Debug "Menu item 3 cliqué!"
         EndSelect
     
     EndSelect
   Until Event = #PB_Event_CloseWindow
 EndIf

OS Supportés

Tous

<- StickyWindow() - Window Index - WindowEvent() ->