Page 1 sur 1

Couleur fond listicon disabled

Publié : dim. 24/mai/2009 18:51
par Anonyme2
Voilà, je bute sur ceci

Je n'arrive pas à récupérer la couleur du fond d'une listicon lorsque qu'elle est désactivée (disabled quoi :D )

J'ai fais plein de recherche (diverses API) et fouiné sur le forum fr/en mais pas trouvé, peut-être que ma requête n'est pas pertinente.

Il y a peut-être une différence si les thèmes sont activés mais je n'en suis pas persuadé.

Si vous avez du code qui va bien.

Publié : lun. 25/mai/2009 23:38
par Le Soldat Inconnu
juste avec un point non ?

j'ai vu le post sur le forum anglais, je n'avais pas proposé cette solution à la c... car je pensais que ce n'était pas cela que tu cherchais.

enfin, en fonction PB, ça donne ça, plutôt que le truc plein d'API des anglais

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.

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

ListIconGadget(0, 10, 20, 200, 150, "test", 100, #LVS_NOCOLUMNHEADER)
DisableGadget(0, 1)
UpdateWindow_(WindowID(0))

If StartDrawing(WindowOutput(0))
    Couleur = Point(GadgetX(0) + 2, GadgetY(0) + GadgetHeight(0) - 2)
  StopDrawing()
EndIf

Debug Hex(Couleur)

Repeat
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_Menu
      Select EventMenu() ; Menus
          
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
          
      EndSelect
  EndSelect
  
Until Event = #PB_Event_CloseWindow

Publié : lun. 25/mai/2009 23:41
par Le Soldat Inconnu
je me place dans le coin bas gauche de la list icon, mais une solution plus solide en fonction du skin adopté serait de plutot se placé au centre du gadget, comme cela

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf

ListIconGadget(0, 10, 20, 200, 150, "test", 100, #LVS_NOCOLUMNHEADER)
DisableGadget(0, 1)
UpdateWindow_(WindowID(0))

If StartDrawing(WindowOutput(0))
    Couleur = Point(GadgetX(0) + GadgetWidth(0) / 2, GadgetY(0) + GadgetHeight(0) / 2)
  StopDrawing()
EndIf

Debug Hex(Couleur)

Repeat
  Event = WaitWindowEvent()
  
Until Event = #PB_Event_CloseWindow 

Publié : mar. 26/mai/2009 3:42
par Anonyme2
La solution de netmaestro est si simple, je suis passé à côté, avec le dc j'ai utilisé l'API GetDCBrushColor mais sans succès.

Pour finir, comme la listicon est dans un gadget de srod (nxSplitter) , je n'ai pas la bonne couleur, je vais essayer ce que m'a dit srod.

J'ai ramé car cela ne fonctionnait pas avec le nxSplitter gadget (j'ai passé presque 2 jours là-dessus...) et je n'ai pas remis en cause ce fonctionnement.