Page 1 sur 1
Cacher une fenêtre dans la barre des tâches
Publié : mar. 19/avr./2011 15:20
par ProgrammeurC
Bonjour tout le monde !
J'ai besoin de votre aide pour une petit chose qui me pose problème:
dans mon application je voudrai que lorsque je crée une fenêtre avec OpenWindow(), le titre de la fenêtre n'apparaisse pas dans la barre des tâches sous Windows pour plusieurs raisons mais principalement:
1.C'est moche
2.C'est nul de se retrouver avec 1000 fenêtres dans la barre des tâches ![/list]
Je remercie les gens qui voudront bien m'aider, je demande seulement un exemple ou un bout de code, merci !
Re: Cacher une fenêtre dans la barre des tâches
Publié : mar. 19/avr./2011 15:34
par jbernard13
salut
je sais pas quel window tu utilise
sinon essaye ça
Code : Tout sélectionner
Enumeration
#main
EndEnumeration
If OpenWindow(#main,0,0,180,70,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
Until Quit
End
Re: Cacher une fenêtre dans la barre des tâches
Publié : mar. 19/avr./2011 16:21
par MLD
Salut
Je pense a ceci. Uniquement avec des toolWindows
Code : Tout sélectionner
Enumeration
#fenstat
EndEnumeration
OpenWindow(#fenstat, 0, 0,860,520, "",#PB_Window_ScreenCentered| #PB_Window_Invisible)
SetWindowLong_(WindowID(#fenstat), #GWL_EXSTYLE, GetWindowLong_(WindowID(#fenstat), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
HideWindow(#fenstat, 0)
StickyWindow(#fenstat, 1)
Repeat
Event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
Hé JB13 ton truc ne cache rien.
Re: Cacher une fenêtre dans la barre des tâches
Publié : mar. 19/avr./2011 18:02
par falsam
Quitte à utiliser du ToolWindow, autant le faire comme ça.
Code : Tout sélectionner
Enumeration
#MainForm
EndEnumeration
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,400,300,"Test",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_Tool | #PB_Window_SizeGadget)
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Dans cette exemple l'icone n’apparaît pas dans la barre de tache de window.
Re: Cacher une fenêtre dans la barre des tâches
Publié : mar. 19/avr./2011 22:26
par ProgrammeurC
Merci pour vos réponses les gens !
falsam je recherche le même effet qu'avec une toolwindow mais avec une fenêtre normale, ça fait assez moche une toolwindow comme écran principal
Vous connaîtriez pas une fonction permettant de ne pas afficher une fenêtre dans la barre des tâches ?
En fait si quelqu'un connaît vb.net, c'est comme quand on demande une seule fenêtre affichée dans la barre des tâches et le reste s'affiche juste sur l'écran, pas en bas...
Si vous connaissez pas, j'utiliserai des toolwindow mais si ça existe sur vb.net pourquoi pas sur PureBasic ?
Je vais faire quelques recherches de mon côté aussi !
Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 8:28
par MLD
Salut
Comme ceci. (D'aprés un échange entre Dobro et le Soldat inconnu )
Code : Tout sélectionner
Procedure RemoveFromTaskbar(hWnd)
Protected Area.RECT, hWnd_Parent
If IsWindow_(hWnd)
SetWindowLongPtr_(hWnd, #GWL_HWNDPARENT, FindWindow_(0, ""))
EndIf
EndProcedure
#window = 1
OpenWindow(#window, 100, 100, 300, 170, "Test", #PB_Window_SystemMenu)
RemoveFromTaskbar(WindowID(#window))
Repeat
Event = WaitWindowEvent()
Select Event
EndSelect
Until Event = #PB_Event_CloseWindow
Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 10:53
par ProgrammeurC
MLD, c'est avec l'API Windows ton code ? Parce que je trouve pas la structure RECT, s'il faut la version complète de PureBasic il faudrat que j'attende un petit peu avant de pouvoir l'utiliser alors...

Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 12:21
par falsam
ProgrammeurC a écrit : ...c'est comme quand on demande une seule fenêtre affichée dans la barre des tâches et le reste s'affiche juste sur l'écran, pas en bas...
Donc je résume : On ouvre la fenêtre principale de l’application qui va s'afficher dans la barre des taches de windows puis on ouvre d'autres fenêtres (toujours dans la même application) qui n’apparaîtront pas dans la barre des taches.
Tu vas pour cela ouvrir chacune de tes fenêtres en ajoutant comme paramètre WindowID(#Mafenetreprincipale)
Exemple pour étayer cela
Code : Tout sélectionner
Enumeration
#MainForm
#Btn_OpenForm
#SecondForm
EndEnumeration
;Fenetre principale
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,800,600,"Premiére Fenetre",#PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_SystemMenu)
ButtonGadget(#Btn_OpenForm, 700,20,80,20,"Open Form")
EndProcedure
Procedure SecondFormShow()
OpenWindow(#SecondForm,0,0,400,300,"Deuxiéme fenetre",#PB_Window_ScreenCentered | #PB_Window_SystemMenu, WindowID(#MainForm))
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_OpenForm
SecondFormShow()
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #MainForm
End
Case #SecondForm
CloseWindow(#SecondForm)
EndSelect
EndSelect
ForEver
Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 14:28
par MLD
ProgrammeurC a écrit :MLD, c'est avec l'API Windows ton code ? Parce que je trouve pas la structure RECT, s'il faut la version complète de PureBasic il faudrat que j'attende un petit peu avant de pouvoir l'utiliser alors...

OUI. Tu aura souvent besoin des APIS alors!
@ falsam
Oui c'est possible comme ceci, mais les fenêtres secondaires ne sont pas indépendantes, ce qui pose des problèmes s'il y en a plus de 2 ou 3. C'est un sujet qui revient souvent sur les forums PB.
Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 15:45
par ProgrammeurC
Merci beaucoup tout le monde !
Je vais garder la méthode de falsam (merci à toi

! )
PS: pour info, je garde la solution avec les ToolWindow

(
Sujet résolu)
Re: Cacher une fenêtre dans la barre des tâches
Publié : mer. 20/avr./2011 23:30
par Le Soldat Inconnu
Et tout simplement comme cela ?
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 100, 100, "Cachée", #PB_Window_Invisible | #PB_Window_NoGadgets) = 0
End
EndIf
If OpenWindow(1, 0, 0, 500, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, WindowID(0)) = 0
End
EndIf
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
Select EventMenu() ; Menus
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
Re: Cacher une fenêtre dans la barre des tâches
Publié : jeu. 21/avr./2011 18:40
par ProgrammeurC
Merci Le Soldat Inconnu, c'est un bon moyen pour mon projet, enfin il faudra que je re-code quelques trucs mais ce sera pas la mort, merci !