Page 1 sur 1

[R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : sam. 12 juil. 2008 17:27
par olaiv
Bonjour je voudrais savoir si il est possible d'appliquer la fonction _GUICtrlListView_SetBkColor à un objet d'une listview et non à la listview en entier.

Ne changer la couleur que d'une ligne dans la listview pour être plus clair.

Si quelqu'un à une idée pour y arriver,même sans passer par cette fonction seul le résultat m'importe ...

Merci d'avance ^^


J'ai essayé de la façon suivante mais cela ne fonctionne pas :

Code : Tout sélectionner

#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Constants.au3>
        
GUICreate("Test listview",200,300)
GUISetState()

$listView=GUICtrlCreateListView("Fichiers",10,30,180,250,-1,$LVS_EX_GRIDLINES)      ;Création de la listview
_GUICtrlListView_SetColumnWidth($ListView,0,176)

$ListViewItem=GUICtrlCreateListViewItem("",$ListView)                               ;Création du premier objet

$ListViewItemRouge=GUICtrlCreateListViewItem("",$ListView)                          ;Création du deuxième objet
GUICtrlSetData($ListViewItemRouge,"Cette ligne en rouge")                           

_GUICtrlListView_SetBkColor($ListViewItemRouge, $CLR_RED)                           ;Essai d'appliquer cette fonction sur une ligne seulement ==> aucun effet

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
 

Re: [...] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : sam. 12 juil. 2008 18:33
par jbnh

Code : Tout sélectionner

#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Constants.au3>
        
GUICreate("Test listview",200,300)
GUISetState()

$listView=GUICtrlCreateListView("Fichiers",10,30,180,250,-1,$LVS_EX_GRIDLINES)      ;Création de la listview
_GUICtrlListView_SetColumnWidth($ListView,0,176)

$ListViewItem=GUICtrlCreateListViewItem("",$ListView)                               ;Création du premier objet

$ListViewItemRouge=GUICtrlCreateListViewItem("",$ListView)                          ;Création du deuxième objet
GUICtrlSetData($ListViewItemRouge,"Cette ligne en rouge")                           
GUICtrlSetColor(-1, 0xaa0000)


Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
Ceci te convient?

Re: [...] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : sam. 12 juil. 2008 22:53
par olaiv
Etrangement oui :)

Je pensais à quelquechose de plus compliqué mais ça rend plutôt bien donc j'adopte ta solution merci :wink:

Re: [R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : sam. 12 juil. 2008 23:48
par SurPriseS
Hum, question subsidiaire, est il possible de coloré la case et pas juste le texte ? par exemple avoir un fond rouge sous du texte noir ?

Re: [R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : dim. 13 juil. 2008 00:05
par olaiv
Justement oui avec _GUICtrlListView_SetBkColor (l'exemple de l'aide est clair) , mais la fonction s'applique sur toute la listview et non sur une case ou ligne ...

Re: [R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : dim. 13 juil. 2008 00:29
par SurPriseS
Oui je me suis mal exprimé ^^ juste une ligne ;) pour faire une liste en 2 couleur pour plus de lisibilité ;)

Re: [R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : dim. 13 juil. 2008 09:40
par Tlem
Comme ceci ? :

Code : Tout sélectionner

#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Constants.au3>
       
GUICreate("Test listview",200,300)
GUISetState()

$listView=GUICtrlCreateListView("Fichiers",10,30,180,250,-1,$LVS_EX_GRIDLINES)      ;Création de la listview
_GUICtrlListView_SetColumnWidth($ListView,0,176)

$ListViewItem=GUICtrlCreateListViewItem("",$ListView)                               ;Création du premier objet
GUICtrlSetData($ListViewItem,"Liste colorée :")                          


$ListViewItembleu=GUICtrlCreateListViewItem("",$ListView)                          ;Création du deuxième objet
GUICtrlSetData($ListViewItembleu,"Cette ligne en bleu")                          
GUICtrlSetColor(-1, 0xF320F9)
GUICtrlSetBkColor ( -1, 0x00F5FF)

$ListViewItemRouge=GUICtrlCreateListViewItem("",$ListView)                          ;Création du troisième objet
GUICtrlSetData($ListViewItemRouge,"Cette ligne en rouge")                          
GUICtrlSetColor(-1, 0xF320F9)
GUICtrlSetBkColor ( -1, 0xaa0000)

$ListViewItemvert=GUICtrlCreateListViewItem("",$ListView)                          ;Création du quatrième objet
GUICtrlSetData($ListViewItemvert,"Cette ligne en vert")                          
GUICtrlSetColor(-1, 0xF320F9)
GUICtrlSetBkColor ( -1, 0x64E22E)

$ListViewItemjaune=GUICtrlCreateListViewItem("",$ListView)                          ;Création du cinquième objet
GUICtrlSetData($ListViewItemjaune,"Cette ligne en jaune")                          
GUICtrlSetColor(-1, 0xF320F9)
GUICtrlSetBkColor ( -1, 0xFFFB4A)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Re: [R] Appliquer _GUICtrlListView_SetBkColor pour un item

Posté : dim. 13 juil. 2008 20:25
par SurPriseS
Nikel ! j'y avais pas penser ^^ comme quoi les choses les plus simples des fois... ;)

Merci !