Page 1 sur 1
Faire disparaître un icône : pourquoi ça marche pas ?
Publié : lun. 07/juin/2010 19:18
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
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : mar. 08/juin/2010 8:46
par Le Soldat Inconnu
si ça ne fonctionne pas comme cela, essai en mettant une icône totalement transparente

Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : mar. 08/juin/2010 19:13
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.
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : mar. 08/juin/2010 22:39
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
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : mer. 09/juin/2010 14:41
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
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : mer. 09/juin/2010 21:48
par Octavius
Non j'ai besoin du SystemMenu pour réduire et fermer.
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : jeu. 10/juin/2010 9:26
par Le Soldat Inconnu
alors la, tu es mal barré
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.
Re: Faire disparaître un icône : pourquoi ça marche pas ?
Publié : jeu. 10/juin/2010 9:31
par Ar-S
Skiner la fenêtre reste une solution..