ImageGadget dans PanelGadget - Prob d'affichage sous XP
Publié : lun. 25/avr./2005 12:53
Salut Fred,
Un gros problème de rafraichissement de l'affichage des ImageGadget placé dans un PanelGadget
regarde cet exemple :
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 :

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
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
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 :

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
