Voilà une petit code pour débutant qui permet d'afficher un MessageRequester() même si la fenêtre est au 1er plan.
Fonctions utilisées : StickyWindow(), SetGadgetState(),GetGadgetState()
Principe :
On doit donc vérifier l'état de StickyWindow(). Si lorsque l'on clique sur le bouton, l'état est 1 alors on repasse cet état à 0.
Une fois le message terminé (que vous avez appuyé sur OK), on remet la fenêtre au 1er plan.
Code : Tout sélectionner
;Voir un MessageRequester même si la fenêtre est au premier plan
; Ar-S / 2010 / PB 4.41
Enumeration
#W : #BT : #CheckBox_1
EndEnumeration
Global plan=1 ; Valeur du StickyWindow
Global NewPlan ; Valeur de comparaison
If OpenWindow(#W, #PB_Ignore, #PB_Ignore, 542, 302, "Window_0", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
StickyWindow(#W,plan)
ButtonGadget(#BT, 115, 95, 300, 85, "Clique pour tester")
CheckBoxGadget(#CheckBox_1, 125, 35, 295, 20, "garder au 1er plan")
SetGadgetState(#CheckBox_1,plan) ; on active par defaut la fenêtre au 1er plan
EndIf
;{- Event loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #CheckBox_1
plan=GetGadgetState(#CheckBox_1)
SetGadgetState(#CheckBox_1,plan)
Case #BT
NewPlan=plan ; On donne à newPlan la même valeur que Plan
If NewPlan=1 ; si la fenêtre est au 1er plan
NewPlan=0 ; On lui donne donc la valeur 0 qui permettra de passer la fenêtre au second plan
SetGadgetState(#CheckBox_1,NewPlan) ; On passe la fenêtre au second plan
EndIf
;On fait passer la fenêtre au second plan
StickyWindow(#W,NewPlan)
; on fait apparaitre le messagerequester()
MessageRequester("Youpi","Le MessageRequester au 1er plan"+Chr(10)+"Et on a l'option de 1er plan décochée")
; On vérifie que la valeur d'origine soit la même
If NewPlan<>plan ; Si ce n'est pas le cas
SetGadgetState(#CheckBox_1,plan) ; On redonne à la fenêtre l'état d'origine
EndIf
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #W
CloseWindow(#W)
Break
EndSelect
EndSelect
ForEver