Couleur fond listicon disabled

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Couleur fond listicon disabled

Message 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.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
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)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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 
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)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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.
Répondre