Cacher une fenêtre dans la barre des tâches

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
ProgrammeurC
Messages : 7
Inscription : dim. 20/févr./2011 21:08
Localisation : Carpentras 84200 France

Cacher une fenêtre dans la barre des tâches

Message 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 !
Le monde et l'univers ne sont que des parties d'un programme plus grand et derrière ce programme, il y a Dieu.
Nous sommes ses IA.
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Cacher une fenêtre dans la barre des tâches

Message 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 
 
Jbernard13
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Cacher une fenêtre dans la barre des tâches

Message 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.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Cacher une fenêtre dans la barre des tâches

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
ProgrammeurC
Messages : 7
Inscription : dim. 20/févr./2011 21:08
Localisation : Carpentras 84200 France

Re: Cacher une fenêtre dans la barre des tâches

Message 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 ? :D
Je vais faire quelques recherches de mon côté aussi !
Le monde et l'univers ne sont que des parties d'un programme plus grand et derrière ce programme, il y a Dieu.
Nous sommes ses IA.
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Cacher une fenêtre dans la barre des tâches

Message 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       
ProgrammeurC
Messages : 7
Inscription : dim. 20/févr./2011 21:08
Localisation : Carpentras 84200 France

Re: Cacher une fenêtre dans la barre des tâches

Message 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... :(
Le monde et l'univers ne sont que des parties d'un programme plus grand et derrière ce programme, il y a Dieu.
Nous sommes ses IA.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Cacher une fenêtre dans la barre des tâches

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Cacher une fenêtre dans la barre des tâches

Message 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! :wink:
@ 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.
ProgrammeurC
Messages : 7
Inscription : dim. 20/févr./2011 21:08
Localisation : Carpentras 84200 France

Re: Cacher une fenêtre dans la barre des tâches

Message par ProgrammeurC »

Merci beaucoup tout le monde !
Je vais garder la méthode de falsam (merci à toi :D ! )
PS: pour info, je garde la solution avec les ToolWindow ;)
(Sujet résolu)
Le monde et l'univers ne sont que des parties d'un programme plus grand et derrière ce programme, il y a Dieu.
Nous sommes ses IA.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Cacher une fenêtre dans la barre des tâches

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
ProgrammeurC
Messages : 7
Inscription : dim. 20/févr./2011 21:08
Localisation : Carpentras 84200 France

Re: Cacher une fenêtre dans la barre des tâches

Message 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 !
Le monde et l'univers ne sont que des parties d'un programme plus grand et derrière ce programme, il y a Dieu.
Nous sommes ses IA.
Répondre