ListControl: Icon ändern / Schrift farbig
-
Hallo zusammen,
ich beschäftige mich momentan etwas mit dem Steuerelement CListControl.
Hierbei ergeben sich momentan für mich zwei Fragen, die ja vielleicht
jemand von euch, der sich damit bereits gut auskennt, beantworten mag.1. Wie kann man bei einem bereits bestehenden Eintrag im ListControl,
anhand der momentanen Auswahl, ein neues Icon dafür setzen?2. Wie ist es möglich einem bereits bestehenden Eintrag im ListControl
nachträglich der Schrift eine andere Schrift-,oder Hintergrundfarbe zu
verpassen?Wenn jemand die Zeit findet mir das zu erklären wäre ich sehr dankbar!
Gruß
Jorsch
-
1. Mit SetItem kann man einen neuen Icon Index setzen.
2. Schriftarten und Farben werden am Besten per Custom draw verändert. Das Beste Tutorial dazu findest Du unter CodeGuru
http://www.codeguru.com/cpp/controls/listview/customdrawing/article.php/c4195/
http://www.codeguru.com/cpp/controls/listview/customdrawing/article.php/c4199/
-
SetItem macht mir noch Probleme:
Das Icon wird entfernt, aber das neue nicht gesetzt

LVITEM lvItem; lvItem.mask = LVIF_IMAGE; lvItem.iItem = 0; lvItem.iImage=1; lvItem.iSubItem = 0; //lvItem.pszText = "Test-text mit LVIF_TEXT"; this->xx.SetItem (&lvItem);
-
Bist Du sicher, dass Deine Imagelist auch richtig ist?
-
Hallo,
LVITEM lvItem; lvItem.mask = LVIF_IMAGE; lvItem.iItem = 0; lvItem.iImage= IDI_ICON2; lvItem.iSubItem = 0; this->xx.SetItem (&lvItem);Auch mit dem Bezeichner scheint es nicht direkt zu gehen.
-
Dumissverstehst das! iImage bezeichnet einen Index in Deine CImageList und keine ID!
-
Du hast Recht. Man muss ja nur die Liste richtig füllen.
Vermutlich liegt es daran.m_imagelist. Create ( 16, 16, TRUE, 4, 4 ); m_imagelist . Add ( ::LoadIcon ( AfxGetInstanceHandle (),MAKEINTRESOURCE ( IDI_ICON1 ) ) ); :arrow_right: m_imagelist . Add ( ::LoadIcon ( AfxGetInstanceHandle (),MAKEINTRESOURCE ( IDI_ICON2 ) ) ); m_List . SetImageList ( &m_imagelist, LVSIL_SMALL );Bei mir geht es dann auch.