Faire disparaître un icône : pourquoi ça marche pas ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Faire disparaître un icône : pourquoi ça marche pas ?

Message par Octavius »

Je voudrais faire disparaître l'icône de la fenêtre 2, pourquoi est-ce que l'API que j'utilise ne fonctionne pas ?

Code : Tout sélectionner

OpenWindow(0,0,0,400,300,"Window 1",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
DisableWindow(0,1)
OpenWindow(1,0,0,200,150,"Window 2",#PB_Window_WindowCentered|#PB_Window_SystemMenu,WindowID(0))
SendMessage_(WindowID(1),#WM_SETICON,0,0)
While WaitWindowEvent()<>#PB_Event_CloseWindow : Wend
La doc des API dit pourtant que si on spécifie 0, cela supprime l'icône. Comparez avec ceci pour changer l'icône :

Code : Tout sélectionner

OpenWindow(0,0,0,400,300,"Window 1",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
DisableWindow(0,1)
OpenWindow(1,0,0,200,150,"Window 2",#PB_Window_WindowCentered|#PB_Window_SystemMenu,WindowID(0))
SendMessage_(WindowID(1),#WM_SETICON,0,LoadIcon_(0,#IDI_ASTERISK))
While WaitWindowEvent()<>#PB_Event_CloseWindow : Wend
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Le Soldat Inconnu »

si ça ne fonctionne pas comme cela, essai en mettant une icône totalement transparente :)
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)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par nico »

SendMessage_(WindowID(1),#WM_SETICON,0,0) fonctionne, seulement ça n'enlève pas l'icône par défaut mais juste l'icône précédemment mis avec ce même message.

L'idée du Soldat est une bonne solution.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Octavius »

Je n'arrive pas à obtenir une image totalement transparente, cependant même si j'y arrive cela décalera toujours le titre de la fenêtre.

Exemple :

Code : Tout sélectionner

EnableExplicit
Define *Mem

Procedure CreateIcon(Image.l)
Protected NewIcon.ICONINFO,Mask.l,Icon.l
Mask=CreateImage(#PB_Any,ImageWidth(Image),ImageHeight(Image),32)
NewIcon\fIcon=#True
NewIcon\hbmMask=ImageID(Mask)
NewIcon\hbmColor=ImageID(Image)
Icon=CreateIconIndirect_(@NewIcon)
FreeImage(Mask)
ProcedureReturn Icon
EndProcedure

OpenWindow(0,0,0,400,300,"Window 1",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
DisableWindow(0,1)
OpenWindow(1,0,0,200,150,"Window 2",#PB_Window_WindowCentered|#PB_Window_SystemMenu,WindowID(0))
CreateImage(0,16,16,32)

StartDrawing(ImageOutput(0))
*Mem=DrawingBuffer()
FillMemory(*Mem,DrawingBufferPitch()*16,0,#PB_Long)
DrawingMode(#PB_2DDrawing_AlphaBlend)
Plot(0,0,RGBA(0,0,0,255))
StopDrawing()

SendMessage_(WindowID(1),#WM_SETICON,0,CreateIcon(0))
While WaitWindowEvent()<>#PB_Event_CloseWindow : Wend
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Le Soldat Inconnu »

comme ça ?

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.40

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

Repeat
  Event = WaitWindowEvent()
  
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)]
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Octavius »

Non j'ai besoin du SystemMenu pour réduire et fermer.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Le Soldat Inconnu »

alors la, tu es mal barré :roll:
Il ne reste que le ToolWindow pour ne pas avoir d'icône. Et encore, il n'y a pas de bouton pour minimiser.

Par ce que dès que l'on met un system menu, il y aura une icône.
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)]
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Faire disparaître un icône : pourquoi ça marche pas ?

Message par Ar-S »

Skiner la fenêtre reste une solution..
~~~~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
Répondre