Page 1 sur 1

Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 0:27
par nico
Je viens de me rendre compte qu'on ne peut pas créer une fenêtre sans bordure et qui n'apparaisse pas dans la barre de tâche en faisant #PB_Window_Tool | #PB_Window_BorderLess; ça ne marche pas.

Comment faire alors ?

Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 6:05
par venom
Salut nico,

sous seven sans #PB_Window_Tool, ça fonctionne donc peut etre un problème de compatibilité avec seven et #PB_Window_Tool a voir.







@++

Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 8:54
par gnozal
Peut-être que le vieux truc de la fenêtre invisible fonctionne sous Se7en ?

Code : Tout sélectionner

If OpenWindow(0, 450, 200, 104, 0, "Dummy invisible window", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_Invisible)
  ; La 1ère fenêtre ne sert qu'à cacher la seconde (elle n'apparaît pas dans la barre des tâches)
  If OpenWindow(1, 450, 200, 402, 402, "Window", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_BorderLess|#PB_Window_Tool, WindowID(0))
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          CloseWindow(0)
          CloseWindow(1)
          Break
      EndSelect
    ForEver
  EndIf
EndIf

Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 9:37
par Le Soldat Inconnu
L'option #PB_Window_Tool ajoute une bordure.

la solution est donc la suivante :

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; ToolWindow sans bordure et invisible dans la barre des tâches

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_NoGadgets | #PB_Window_Invisible) = 0
  End
EndIf

If OpenWindow(1, 0, 0, 300, 300, "Test", #PB_Window_BorderLess | #PB_Window_Invisible, WindowID(0)) = 0
  End
EndIf

SetWindowLong_(WindowID(1), #GWL_EXSTYLE, GetWindowLong_(WindowID(1), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)

HideWindow(1, 0)

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow



Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 13:34
par MLD
Il semble q'une seule fenêtre suffise :?: :?:

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; ToolWindow sans bordure et invisible dans la barre des tâches

; Création de la fenêtre et de la GadgetList
; If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_NoGadgets | #PB_Window_Invisible) = 0
;   End
; EndIf

 OpenWindow(1, 0, 0, 300, 300, "Test", #PB_Window_BorderLess | #PB_Window_Invisible);, WindowID(0)) = 0
  ;End
;EndIf

SetWindowLong_(WindowID(1), #GWL_EXSTYLE, GetWindowLong_(WindowID(1), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)

HideWindow(1, 0)

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow
end

Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 13:47
par Le Soldat Inconnu
heu, oui :mrgreen:

Re: Fenêtre sans bordure et invisible dans la barre de tâche

Publié : lun. 06/sept./2010 16:54
par nico
Bon sang, c'est la méthode que j'avais utilisé mais comme j'ai fait une modif à cause du problème du stickywindow, j'avais enlevé l'invisibilité et j'ai cru par la suite que je n'avais pas résolu le problème.

Je vous jure des fois...

Mille mercis