Page 1 sur 1

Mettre un fenêtre au premier plan

Publié : mer. 25/févr./2004 15:51
par Le Soldat Inconnu
Salut,

je souhaite mettre une fenêtre qui est cachée sous une autre au premier plan.

j'ai trouvé ça mais c'est pas top :

il faut lancer le code, mettre une fenêtre devant la fenêtre de test (l'éditeur de pb par exemple) et appuyé sur ALT + A pour mettre la fenêtre au premier

Code : Tout sélectionner

OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered, "Test")

If CreateGadgetList(WindowID())
  TextGadget(1, 5, 5, 150, 15, "")
EndIf

#HotKeyID = 45

; On associe un touche au programme
; Ici la touche "Alt + A"
RegisterHotKey_(WindowID(0), #HotKeyID, #MOD_ALT, #PB_Shortcut_A)

Repeat
  Event = WaitWindowEvent()
  
  If Event = #WM_HOTKEY ; Si on appui sur une touche de raccourci
    If EventwParam() = #HotKeyID ; Si on a appuyé sur la touche #HotKeyID qui correpond ici à "Alt + A"
      
      SetGadgetText(1, "Touche appuyée") ; On change le texte
      
      ; On met la fenêtre au premier plan
      SetWindowPos_(WindowID(0), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)
      SetWindowPos_(WindowID(0), 0, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)
      
      ; ShowWindow_(WindowID(0), #SW_SHOWNORMAL | #SW_RESTORE) ; Marche pas
      ; BringWindowToTop_(WindowID(0)) ; Marche pas
      
    EndIf
  EndIf
  
Until Event = #WM_CLOSE

UnregisterHotKey_(WindowID(0), #HotKeyID)
Je pense qu'il y a mieux à faire, notamment avec BringWindowToTop_() ou ShowWindow_() mais ça ne marche pas :(
c'est moi qui suit nul ou bien ?

voici une solution

Publié : mer. 25/févr./2004 15:57
par Invité
le plus simple que j'ai trouvé c de faire comme cela
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)

puis si tu ne la veux plus en 1er plan
SetWindowPos_(WindowID(), 1, 300, 300, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)

Publié : mer. 25/févr./2004 16:30
par Le Soldat Inconnu
C'est exactement ce que j'ai fait et ce que je trouve pas génial.
Tu as lu mon messgae :roll:

Hein alors, et puis tu es qui toi, hein, parce que moi, le "invité" :lol: :mrgreen:

Publié : mer. 25/févr./2004 16:39
par Fred

Publié : mer. 25/févr./2004 17:06
par Le Soldat Inconnu
cool

ça donne ça : (ça fait beaucoup de ça, ça, non :mrgreen: )

Code : Tout sélectionner

OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered, "Test")

If CreateGadgetList(WindowID())
  TextGadget(1, 5, 5, 150, 15, "")
EndIf

#HotKeyID = 45

; On associe un touche au programme
; Ici la touche "Alt + A"
RegisterHotKey_(WindowID(0), #HotKeyID, #MOD_ALT, #PB_Shortcut_A)

Repeat
  Event = WaitWindowEvent()
  
  If Event = #WM_HOTKEY ; Si on appui sur une touche de raccourci
    If EventwParam() = #HotKeyID ; Si on a appuyé sur la touche #HotKeyID qui correpond ici à "Alt + A"
      
      SetGadgetText(1, "Touche appuyée") ; On change le texte
      
      ; On met la fenêtre au premier plan
      SetForegroundWindow_(WindowID(0))
      
    EndIf
  EndIf
  
Until Event = #WM_CLOSE

UnregisterHotKey_(WindowID(0), #HotKeyID)

l'invité c moi

Publié : mer. 25/févr./2004 19:15
par Syszz
Le Soldat Inconnu a écrit :C'est exactement ce que j'ai fait et ce que je trouve pas génial.
Tu as lu mon messgae :roll:

Hein alors, et puis tu es qui toi, hein, parce que moi, le "invité" :lol: :mrgreen:
lol l'invité c moi :wink:
j'avais pas lu tes codes asser loin mais plus lu les miens car j'avais déja fait cela dans une des mes applications

oui j'ai fait une gaffe car j'ai ecrie le message sans avoir fait connexion avant car je suis un new depuis hier :lol:
j'ai pas l'habitude de répondre dans les forums :roll:

Publié : jeu. 26/févr./2004 18:52
par Le Soldat Inconnu
C'est pas grave, ici, on est la pour s'entraider mais tu verras également qu'on aime bien rigoler :mrgreen:
Bienvenue sur le forum.

Publié : jeu. 26/févr./2004 19:00
par Syszz
Merci Beaucoup Soldat Inconnu :)