Page 1 sur 1

ImageGadget dans PanelGadget - Prob d'affichage sous XP

Publié : lun. 25/avr./2005 12:53
par Le Soldat Inconnu
Salut Fred,

Un gros problème de rafraichissement de l'affichage des ImageGadget placé dans un PanelGadget

regarde cet exemple :

Code : Tout sélectionner

Enumeration
  #Panel
EndEnumeration

OpenWindow(0, 0, 0, 400, 500, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_Invisible, "Test")
CreateGadgetList(WindowID())

PanelGadget(#Panel, 0, 0, 250, 500)

  AddGadgetItem(#Panel, 0, "Test 1")
  
  Icone = LoadIcon_(0, #IDI_APPLICATION)
  ImageGadget(#PB_Any, 0, 0, 0, 0, Icone)
  
  Icone = LoadIcon_(0, #IDI_EXCLAMATION)
  ImageGadget(50, 0, 50, 0, 0, Icone)
  
  Icone = LoadIcon_(0, #IDI_HAND)
  ImageGadget(51, 0, 100, 0, 0, Icone)
  
  Icone = LoadIcon_(0, #IDI_QUESTION)
  ImageGadget(#PB_Any, 0, 150, 0, 0, Icone)
  
  
  AddGadgetItem(#Panel, 1, "Test 2")
   
  AddGadgetItem(#Panel, 2, "Test 3")

CloseGadgetList()

Icone = LoadIcon_(0, #IDI_APPLICATION)
ImageGadget(#PB_Any, 300, 0, 0, 0, Icone)
  
Icone = LoadIcon_(0, #IDI_EXCLAMATION)
ImageGadget(#PB_Any, 300, 50, 0, 0, Icone)
  
Icone = LoadIcon_(0, #IDI_HAND)
ImageGadget(#PB_Any, 300, 100, 0, 0, Icone)
  
Icone = LoadIcon_(0, #IDI_QUESTION)
ImageGadget(#PB_Any, 300, 150, 0, 0, Icone)


HideWindow(0, 0)

OpenWindow(1, 0, 0, 300, 200, #PB_Window_ScreenCentered, "Window to explain the bug")
CreateGadgetList(WindowID())
TextGadget(#PB_Any, 0, 0, 300, 40, "Move icons of the window 'Test' under this window" + Chr(10) + "And see the icon ....")
TextGadget(#PB_Any, 0, 50, 300, 40, "The mask of icons into the PanelGadget are drawing wrong" + Chr(10) + "Compare with icons on the right")
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE)

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow
Il suffit de déplacer les icônes de la fenêtre "Test" (attention vous tromper pas de fenêtre) sous l'autre que j'ai mis volontairement toujours au premier plan
quand les icônes sont passées sous cette fenêtre, il suffit de regarder la différence entre les icones du panelgadget et ceux de droite pour voir que le masque n'est plus du tout dessiné correctement

aperçu :
Image

Ce bug vient du fait que l'icône (au format XP) est dessiné avec le masque classique de l'icone (celui utilisé sous win2k par exemple) or sous XP, il faut utilisé le masque permettant les effets de fondu (couleur 32bits RGBT, T pour transparence)

Plutôt génant car certaine icône s'affiche mal après ouverture de la fenêtre.
et si je sors la fenêtre de l'écran (je la déplace la plus bas possible et je la remonte), j'ai le même souci.

Merci d'avance pour la correction ;)

Publié : lun. 25/avr./2005 15:19
par cederavic
Effectivment...

Juste un petit truc, sans importance, c'est RGBA (Red Green Blue Alpha) ou RVBT (Rouge Vert Bleue Transparence), et pas un mélange des deux :P

Publié : lun. 25/avr./2005 15:26
par Dr. Dri
bah avec tout le franglais qu'o a maintenant, on est plus à un terme près

Dri :jesors:

Publié : dim. 15/mai/2005 18:29
par Fred
J'y crois pas, c'est encore le meme probleme que la derniere fois (et j'avais lutté pour trouver une parade).

Publié : dim. 15/mai/2005 19:08
par Fred
Rebelote, tu peux essayer cette nouvelle lib: www.purebasic.com/beta/GadgetExtension