CListCtrl : mettre une image à coté du texte... [MFC] - Programmation
Marsh Posté le 25-02-2002 à 09:00:26
heu, juste une question... c code, t'espères que ça va t'afficher tes images !?
Marsh Posté le 25-02-2002 à 20:00:55
et oui, pourquoi y a un problème ?
Quand je dis image, c'est icone (j'espère qu'il y avait pas de mal entendu la dessus)
[jfdsdjhfuetppo]--Message édité par antsite--[/jfdsdjhfuetppo]
Marsh Posté le 26-02-2002 à 12:26:17
et... t sur que ça sert à ça !?
t'as bien lu la doc ? moi à première vue, je dirais que ça sert à stocker des images en mémoire (qui peuvent d'ailleur être autre chose que des incônes, comme des Bitmaps), pas à les afficher...
essaye plutot avec un CListCtrl.
[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]
Marsh Posté le 26-02-2002 à 13:21:40
tu as bien lu le sujet ?
m_rep.InsertItem(n,f.name,0);
à ton avis ça sert à quoi ?
0 c'est la position de l'image dans la litse
aller sans rancune !
Marsh Posté le 26-02-2002 à 14:14:07
Et tu trouves pas bisard qu'a aucun endroit, ni dans le constructeur, ni dans la méthode Create, on ne précise de CRect ou autres coordonnées ! Comment tu choisis ou tu le place ton truc !
ça sert à organiser des images en mémoire ton CImageList...
c pas dit que c'était pas une liste. G dit que c une liste, pas pour afficher, ms pour "ranger" et garder chargées des images en mémoire... d'ou le InsertItem
TT à l'heure j'en était pas sur, ms là, je suis sur à 100%. Preuve formelle: CImageList n'hérite pas de CWnd alors que tt les contrôles qui s'affichent sont des "fenêtres", autrement, héritent de CWnd.
[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]
Marsh Posté le 26-02-2002 à 14:17:38
y a un truc que je capte pas
il dit que m_rep c'est une CListCtrl et toi tu lui dis d'utiliser plutot une CListCtrl
Je connais pas les MFC, mais la façon dont il procède semble +/- logique (en comparant avec la manière dont fonctionne les composants de Borland)... pas besoin de donner de coordonnées, puisque chaque item de la CListCtrl a une image associée, image dont on donne un index, et qui provient de la CImageList associée.
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 26-02-2002 à 14:19:57
ha...
évidement, si je lis mal...
Alors là, ça fait parti des moment ou on se sent très seul. Ou on se fait tout petit...
dsl
Marsh Posté le 26-02-2002 à 14:20:30
D'abord je t'ai pas pris pour un con mais si tu le prends comme ça ben à mon tour de te dire que si t'es pas capable de t'expliquer et d'être tolérant ben casse toi du Forum.
Merci Antp, si ça peut m'aider à me faire comprendre, tu as tout à fait raison.
Marsh Posté le 26-02-2002 à 14:22:01
j'avais pas lu ton dernier post El_Gringo, alors moi aussi je te fais mes excuses.
Marsh Posté le 26-02-2002 à 14:24:37
El_Gringo a écrit a écrit : ha... évidement, si je lis mal... Alors là, ça fait parti des moment ou on se sent très seul. Ou on se fait tout petit... dsl |
ça arrive
enfin sur un forum ça va encore
quand ça arrive "en vrai" c'est encore pire
Marsh Posté le 26-02-2002 à 14:33:46
Essaye de faire voir déja si y a des item dans ta CListCtrl, avec un GetItemCount...
Marsh Posté le 26-02-2002 à 14:34:24
antp a écrit a écrit : ça arrive enfin sur un forum ça va encore quand ça arrive "en vrai" c'est encore pire |
Non, en vrai, j'aurai mis un coup de tête avant de me rendre compte que j'avais tord ! ça se serai beaucoup mieux passé !
Marsh Posté le 26-02-2002 à 18:52:52
Donc pour en revenir au topic, il y a bien des items dans la liste (ils sont affichés donc je pense pas qu'il y est de problèmes de ce coté).
J'ai essayé avec un Bitmap à la place de l'icone, idem. Quand je met LVSIL_SMALL, il y a cette fois à la place de l'icone un petit carré blanc, c'est à dire qu'il pense bien mettre une icone mais il l'affiche pas.
Mon icone est bien 16x16 en 16 couleurs.
Marsh Posté le 26-02-2002 à 19:40:17
logiquement ça serait small au lieu de normal (normal c'est les 32x32)
ton imagelist, elle est pas par hasard détruite après que tu sois sorti de la fonction ? (variable locale)
Marsh Posté le 26-02-2002 à 20:10:14
pour l'image list je pense pas car sinon comment l'utiliser ? Non à mon avis et d'après ce que j'ai pu comprendre dans la doc, un seul appel suffit et après il n'y a plus qu'à donner la position de l'image dans cette liste.
Marsh Posté le 26-02-2002 à 22:32:03
oui, mais ta liste ne doit pas etre detruite
si tu fais:
void init() {
CImageList img;
img.Create(16,16,ILC_COLOR4,1,1);
img.Add(AfxGetApp()->LoadIcon(IDI_REP));
m_rep.SetImageList(&img,LVSIL_SMALL);
m_rep.InsertItem(n,f.name,0);
}
dès qu'on sort de la fonction l'image list est détruite, et donc la CListCtrl n'a plus rien à afficher
Marsh Posté le 27-02-2002 à 10:55:34
d'accord mais ça c'est dans la fonction init() alors il devrait pas y avoir de problèmes non ?
m_rep.InsertItem(n,f.name,0);
Marsh Posté le 27-02-2002 à 12:06:17
antsite a écrit a écrit : d'accord mais ça c'est dans la fonction init() alors il devrait pas y avoir de problèmes non ? m_rep.InsertItem(n,f.name,0); |
Ouais, j'pense que c bien possible qu'il ai raison antp. Essaye de mettre ton "CImageList img;" en variable globale (si t en C) ou en membre de l'objet qui à cette méthode "Init" (si t en C++).
c vite essayé. T'as rien à perdre et tt à gagner...
[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]
Marsh Posté le 27-02-2002 à 14:53:59
antsite a écrit a écrit : d'accord mais ça c'est dans la fonction init() alors il devrait pas y avoir de problèmes non ? |
bhen si pcq dès que tu sors de Init ta liste elle est détruite, car il s'agit d'une variable locale
Marsh Posté le 27-02-2002 à 18:21:42
Et bien oui c'était ça ! Il ne me reste plus qu'à vous remercier tous les deux et à vous dire à une prochaine fois !
a+
ANT
Marsh Posté le 24-02-2002 à 21:10:30
Ce code compile mais ne marche pas, quelqu'un peut-il m'aider ?
m_rep c'est la CListCtrl
CImageList img;
img.Create(16,16,ILC_COLOR4,1,1);
img.Add(AfxGetApp()->LoadIcon(IDI_REP));
m_rep.SetImageList(&img,LVSIL_NORMAL); //j'ai essayé en LVSIL_SMALL ça fait pareil
m_rep.InsertItem(n,f.name,0);
merci