pb focus messagerequester pas au premier plan

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

pb focus messagerequester pas au premier plan

Message par david »

j'ai fait un bout de programme avec PB4.20
il ouvre / ferme / met en avant différentes fenêtre
en utilisant notamment:

Code : Tout sélectionner

 If OpenWindow(2, 0, 0, 4000, 2000, "Veuillez patienter, le paramétrage est en cours...",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
  SetWindowPos_(WindowID(2), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ;fenetre premier plan********
 
une fois mon programme achevé, je veux dire que tout est ok
j'utilise

Code : Tout sélectionner

MessageRequester(titre","message")
mais ma box n'apparait pas au premier plan??!!
j'ai bien retourné la doc... mais il n'y a pas trop de paramètres pour Messagerequester
j'ai trouvé des astuces pour reprendre le focus mais rien s'appliquant sur un Messagerequester

Vais-je devoir remplacer Messagerequester par une nouvelle fenetre avec un bouton valider?? ou existe-t-il un moyen de rappeler a Messagerequester qu'il est censé avoir le focus??
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: pb focus messagerequester pas au premier plan

Message par Backup »

Code : Tout sélectionner

SetWindowPos_(WindowID(2), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ;fenetre premier plan********
pourquoi ne pas utiliser

Code : Tout sélectionner

 StickyWindow(#Fenetre, Etat) 
Etat =
1: la fenêtre sera toujours au premier plan.
0: le fenêtre ne restera pas au premier plan si elle n'est pas active.
ceci peut donc se changer juste avant l'apparition du requester() :roll: ;)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: pb focus messagerequester pas au premier plan

Message par Ar-S »

si y'a possibilité d'éviter les API c'est pas plus mal comme le souligne Dobro.

Pourquoi ne pas te faire une tite procédure de messagerequester modifé ?

Code : Tout sélectionner

Procedure MessRequesterVisible(Fenetre, titre.s, message.s, flag)
  StickyWindow(Fenetre, 0) ; impose la fenêtre au second plan
  MessageRequester(titre,message,flag)
  StickyWindow(Fenetre, 1) ; repasse la fenêtre au 1er plan
EndProcedure
Mise en oeuvre :

Code : Tout sélectionner



Enumeration
  #Window_0
  #BT
EndEnumeration

Procedure MessRequesterVisible(Fenetre, titre.s, message.s, flag)
  StickyWindow(Fenetre, 0) ; impose la fenêtre au second plan
  MessageRequester(titre,message,flag)
  StickyWindow(Fenetre, 1) ; repasse la fenêtre au 1er plan
EndProcedure

If OpenWindow(#Window_0, 450, 200, 429, 106, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
  StickyWindow(Fenetre, 1)
  ButtonGadget(#BT, 125, 25, 155, 50, "Cliquer ici")
  
EndIf


Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #BT
          
          MessRequesterVisible(#Window_0, "test", "on me voit", #MB_OK)
          
      EndSelect
      
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver



~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre