SetWindowCallback()
Syntaxe
SetWindowCallback(@NomProcedure() [, #Fenetre [, Mode]])Description
Mise en place d'une procédure de gestion des évènements, dite de 'Callback'.
Pour programmeurs expérimentés.
Cette fonction n'est disponible que sous Microsoft Windows.
Arguments
@NomProcedure() L'adresse de la procedure de Callback à utiliser.
La procédure de Callback doit avoir 4 paramètres et si l'événement n'est pas traité, le résultat doit être défini sur #PB_ProcessPureBasicEvents afin que l'événement soit correctement géré par PureBasic.
Voici un exemple de code :Procedure MaProcedureCallback(WindowID, Message, WParam, LParam) Resultat = #PB_ProcessPureBasicEvents ; ; Votre code ici ; ProcedureReturn Resultat EndProcedure#Fenetre (optionnel) Permet d'affecter la callback seulement à une fenêtre spécifiée.
Si ce paramêtre est omis, la procedure de Callback sera appelée par toutes les fenêtres.Mode (optionnel) Le mode de rappel peut prendre l'une des valeurs suivantes : #PB_Window_ProcessChildEvents: Les événements des gadgets enfants (principalement #WM_NOTIFY) seront envoyés à la fenêtre principale. Ne fonctionne pas pour tous les gadgets (par défaut). #PB_Window_NoChildEvents : Les événements des gadgets enfants ne seront pas envoyés à la fenêtre principale (comportement par défaut de WinAPI).
Valeur de retour
Aucune.
Remarques
Les évènements classiques devraient toujours être gérés avec les commandes WaitWindowEvent() ou WindowEvent().
Attention, c'est relativement bas niveau et peut interférer avec les évènements PureBasic si elle est incorrectement utilisée.
Cette fonction associe un rappel (callback) pour gérer les événements de toutes les fenêtres ouvertes.
Tous les événements sont capturés par ce rappel et peuvent être traités ici. Pour définir un rappel pour une fenêtre spécifique uniquement, il suffit d'ajouter l'identifiant de la fenêtre concernée dans le paramètre facultatif [#Fenetre].
Pour annuler une Callback (fonction de rappel), il suffit d'appeler SetWindowCallback(0 [, #Fenetre]).
L'exemple qui suit montre comment tester quelques paramètres d'une fenêtre. (En utilisant les constantes de l'API Windows):
Exemple
Procedure WinCallback(hWnd, uMsg, WParam, LParam) ; Windows remplit automatiquement les paramètres. ; Ces paramètre sont utilisable dans le code de la callback. If uMsg = #WM_SIZE Select WParam Case #SIZE_MINIMIZED Debug "La fenêtre est minimisée" Case #SIZE_RESTORED Debug "La fenêtre est rétablie" Case #SIZE_MAXIMIZED Debug "La fenêtre est agrandie" EndSelect EndIf ProcedureReturn #PB_ProcessPureBasicEvents EndProcedure If OpenWindow(0, 0, 0, 200, 100, "Messages", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) SetWindowCallback(@WinCallback(), 0) ; active la callback Repeat Select WaitWindowEvent() Case #PB_Event_CloseWindow End EndSelect ForEver EndIf
OS Supportés
Windows