.............
.............
...................
Dernière modification par Backup le ven. 07/oct./2011 12:15, modifié 2 fois.
Re: faire disparaitre une fenetre de la barre des taches !!
merci !
Et pour la faire réapparaitre ?
Et pour la faire réapparaitre ?

~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: faire disparaitre une fenetre de la barre des taches !!
Y a un moyen encore plus simple pour la faire disparaître:
Cliquer sur la croix en haut à droite.
Cliquer sur la croix en haut à droite.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: faire disparaitre une fenetre de la barre des taches !!
Alors la Dodro, tu t'es compliqué la vie
Sans forcément avoir une fenêtre sous forme de ToolBar (D'ailleur, il y a l'option dans PB pour la création de fenêtre)
2 lignes de codes pour une fenêtre non visible dans la barre des tâches
Solution que tu aurais trouvé si tu avais utilisé la fonction recherche du forum
La tienne aussi d'ailleurs.
Et en passant, ton code est mauvais, pour changer le style, tu dois faire comme cela :
( GetWindowLongPtr est à préférer à GetWindowLong, vu ça sur msdn pour la compatilibé avec les application 64 bits)

Sans forcément avoir une fenêtre sous forme de ToolBar (D'ailleur, il y a l'option dans PB pour la création de fenêtre)
2 lignes de codes pour une fenêtre non visible dans la barre des tâches
Code : Tout sélectionner
OpenWindow(0, 0, 0, 200, 200, "Invisible", #PB_Window_Invisible)
OpenWindow(1, 0, 0, 600, 300, "Visible mais pas dans la barre des tâches", #PB_Window_SystemMenu | #PB_Window_ScreenCentered, WindowID(0))
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

Et en passant, ton code est mauvais, pour changer le style, tu dois faire comme cela :
Code : Tout sélectionner
SetWindowLongPtr_(WindowID(0), #GWL_EXSTYLE, GetWindowLongPtr_(WindowID(0), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW) ; choix de la barre d'outil réduite
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: faire disparaitre une fenetre de la barre des taches !!
j'ai modifié le code pour pouvoir le faireAr-S a écrit :merci !
Et pour la faire réapparaitre ?

bouton droit elle disparait
bouton gauche elle réapparait !
@Soldat
j'ai dis pourtant plus haut que certaines solutions proposaient de faire 2 fenêtresSolution que tu aurais trouvé si tu avais utilisé la fonction recherche du forumLa tienne aussi d'ailleurs.
ce qui m'a bien fait rire !!

heureusement qu'il ne faille pas en faire 20 ...

la mienne ? j'ai jamais dis qu'elle etait de moi
de plus la version qui traine propose l'utilisation de Findwindow()
parfaitement inutile dans l'utilisation courante d'un prg

ha? ben pas de problème merci de ta précision, ya plus qu'a changerGetWindowLongPtr est à préférer à GetWindowLong, vu ça sur msdn pour la compatilibé avec les application 64 bits
ps : Voila c'est fait

-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: faire disparaitre une fenetre de la barre des taches !!
J'ai le droit de corriger ?
alors, il a un petit "a" qui ne sert à rien, la méthode de changement du style est mauvaise, tu en vérifie pas que la fenêtre existe dans le mode=0, et on peut optimiser
ça donne

alors, il a un petit "a" qui ne sert à rien, la méthode de changement du style est mauvaise, tu en vérifie pas que la fenêtre existe dans le mode=0, et on peut optimiser

ça donne
Code : Tout sélectionner
Procedure RemoveFromTaskbar(hWnd, Remove)
Protected Area.RECT, hWnd_Parent
If IsWindow_(hWnd)
hWnd_Parent = GetAncestor_(hWnd, #GA_ROOT) : If hWnd_Parent <> 0 : hWnd = hWnd_Parent : EndIf
ShowWindow_(hWnd, #SW_HIDE)
GetWindowRect_(hWnd, Area.RECT)
If Remove = 1
SetWindowLong_(hWnd, #GWL_EXSTYLE, GetWindowLongPtr_(hWnd, #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
Else
SetWindowLong_(hWnd, #GWL_EXSTYLE, GetWindowLongPtr_(hWnd, #GWL_EXSTYLE) & ~#WS_EX_TOOLWINDOW)
EndIf
SetWindowPos_(hWnd, 0, 0, 0, Area\right - Area\left, Area\bottom - Area\top, #SWP_NOMOVE | #SWP_SHOWWINDOW)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
#window = 1
OpenWindow(#window, 100, 100, 300, 170, "Mp3_list", #PB_Window_SystemMenu)
; soit on appel comme ça :
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_RBUTTONDOWN
RemoveFromTaskbar(WindowID(#window), 1) ; fait disparaitre la fenetre
Case #WM_LBUTTONDOWN
RemoveFromTaskbar(WindowID(#window), 0) ; fait réaparaitre la fenetre
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: faire disparaitre une fenetre de la barre des taches !!
Merci 
ton code a été coloré et a remplacé l'autre

ton code a été coloré et a remplacé l'autre

Re: faire disparaitre une fenetre de la barre des taches !!
Ce code n'accepte pas de se fermer chez moi, obligé de CtrlAltSupprer.Le Soldat Inconnu a écrit :J'ai le droit de corriger ?![]()
alors, il a un petit "a" qui ne sert à rien, la méthode de changement du style est mauvaise, tu en vérifie pas que la fenêtre existe dans le mode=0, et on peut optimiser![]()
ça donneCode : Tout sélectionner
Procedure RemoveFromTaskbar(hWnd, Remove) Protected Area.RECT, hWnd_Parent If IsWindow_(hWnd) hWnd_Parent = GetAncestor_(hWnd, #GA_ROOT) : If hWnd_Parent <> 0 : hWnd = hWnd_Parent : EndIf ShowWindow_(hWnd, #SW_HIDE) GetWindowRect_(hWnd, Area.RECT) If Remove = 1 SetWindowLong_(hWnd, #GWL_EXSTYLE, GetWindowLongPtr_(hWnd, #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW) Else SetWindowLong_(hWnd, #GWL_EXSTYLE, GetWindowLongPtr_(hWnd, #GWL_EXSTYLE) & ~#WS_EX_TOOLWINDOW) EndIf SetWindowPos_(hWnd, 0, 0, 0, Area\right - Area\left, Area\bottom - Area\top, #SWP_NOMOVE | #SWP_SHOWWINDOW) ProcedureReturn 1 Else ProcedureReturn 0 EndIf EndProcedure #window = 1 OpenWindow(#window, 100, 100, 300, 170, "Mp3_list", #PB_Window_SystemMenu) ; soit on appel comme ça : Repeat Event = WaitWindowEvent() Select Event Case #WM_RBUTTONDOWN RemoveFromTaskbar(WindowID(#window), 1) ; fait disparaitre la fenetre Case #WM_LBUTTONDOWN RemoveFromTaskbar(WindowID(#window), 0) ; fait réaparaitre la fenetre EndSelect Until Event = #PB_Event_CloseWindow
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: faire disparaitre une fenetre de la barre des taches !!
heu t'es sur ??Ar-S a écrit : Ce code n'accepte pas de se fermer chez moi, obligé de CtrlAltSupprer.
chez moi marche bien Xp Sp3
j'espere que ça marche chez toi, parceque j'ai fais confiance au soldat
et je n'ai plus ma version du début qui fonctionnait chez toi , j'ai remplacé par celle-ci...

en plus ça équipe mon pure_radio ....
m'est avis, que tu devais avoir un autre truc qui a fais planter ton ordi ...
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: faire disparaitre une fenetre de la barre des taches !!
Testé sous 7 x64 pour ma part. Et ça marche très bien (je viens de retester pour être sur)
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: faire disparaitre une fenetre de la barre des taches !!
par contre elle change de trogne esthétiquement la fenêtre
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: faire disparaitre une fenetre de la barre des taches !!
forcément puisque ce code la passe sous forme de toolwindow.
Cadeau, la même chose sans changement de style
Cadeau, la même chose sans changement de style

Code : Tout sélectionner
Procedure RemoveFromTaskbar(hWnd, Remove)
Protected Area.RECT, hWnd_Parent
If IsWindow_(hWnd)
hWnd_Parent = GetAncestor_(hWnd, #GA_ROOT) : If hWnd_Parent <> 0 : hWnd = hWnd_Parent : EndIf
ShowWindow_(hWnd, #SW_HIDE)
If Remove = 1
SetWindowLongPtr_(hWnd, #GWL_HWNDPARENT, FindWindow_(0, "program manager"))
Else
SetWindowLongPtr_(hWnd, #GWL_HWNDPARENT, 0)
EndIf
ShowWindow_(hWnd, #SW_SHOW)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
#window = 1
OpenWindow(#window, 100, 100, 300, 170, "Mp3_list", #PB_Window_SystemMenu)
; soit on appel comme ça :
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_RBUTTONDOWN
RemoveFromTaskbar(WindowID(#window), 1) ; fait disparaitre la fenetre
Case #WM_LBUTTONDOWN
RemoveFromTaskbar(WindowID(#window), 0) ; fait réaparaitre la fenetre
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]