Icon in einer Liste nur in Zeile X???
-
Hy,
Ich schreibe folgendermasen ein Icon in meine Liste:
CImageList *TreeImageList = new CImageList; HICON hIcon = NULL; TreeImageList->Create(16, 16, TRUE, 4, 4); // Icon für geänderte Daten hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); TreeImageList->Add(hIcon); if(RegionID == 1 && checkae == true) { iRec = c_ListNord.InsertItem(0,idm,0); c_ListNord.SetItemText(0,1,idmm); c_ListNord.SetImageList(TreeImageList,LVSIL_SMALL); }Wie kann ich dem Programm mitteilen das ich das Icon nur in der Xten Zeile haben möchte???
MFG
RS
-
Hallo !
Hier mal ein Ausschnitt aus meinem Testprojekt. Es erzeugt vier Einträge mit Icon 2, vier Einträge ohne Icon und vier Einträge mit Icon 1. Vielleicht kannst du dir ja abgucken, was du brauchst...
Im Header habe ich:
CImageList *TreeImageList;Im Konstruktor habe ich:
TreeImageList = new CImageList;Im Destruktor habe ich:
delete TreeImageList;In OnInitDialog() habe ich:
m_Liste.InsertColumn(0, "eins", LVCFMT_LEFT, 100, -1); HICON hIcon = NULL; TreeImageList->Create(16, 16, TRUE, 0, 0); hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); TreeImageList->Add(hIcon); // Index 0 in der Bilderliste (Icon 1) hIcon = AfxGetApp()->LoadIcon(IDI_ICON2); TreeImageList->Add(hIcon); // Index 1 in der Bilderliste (Icon 2) m_Liste.SetImageList(TreeImageList, LVSIL_SMALL); for(int i = 0; i < 4; ++i) m_Liste.InsertItem(i, "test 1", 0); // 3. Paramenter ist der Index von der Bilderliste "TreeImageList" for(i = 0; i < 4; ++i) m_Liste.InsertItem(i, "test 2", -1); // kein Icon for(i = 0; i < 4; ++i) m_Liste.InsertItem(i, "test 3", 1); // 1. Parameter ist der Index des Eintrages in dem ListCtrlTschüss
-
Irgendwie komme ich nicht weiter.
Ich poste mal meinen Code.
In diesem teil lese ich daten aus einer MDB Datei.
Nach dem einlesen des Datensatzes wird dieser auf eine Änderung geprüft.
Wenn eine änderung erfolgt ist dann soll der eintrag in der liste mit einem Icon angezeigt werden.
ansonsten nur der Eintrag.CImageList *TreeImageList = new CImageList; HICON hIcon = NULL; TreeImageList->Create(16, 16, TRUE, 0, 0); // Icon für geänderte Daten hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); TreeImageList->Add(hIcon); c_ListNord.SetImageList(TreeImageList,LVSIL_SMALL); c_ListSued.SetImageList(TreeImageList,LVSIL_SMALL); CDatabase database; // Build ODBC connection string sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile); TRY { // Open the database database.Open(NULL,false,false,sDsn); //.... while( !recset.IsEOF() ) { bool checkae = false; CString idm, idmm, gid; recset.GetFieldValue("NL",idm); recset.GetFieldValue("NLS",idmm); checkae = aenderungch(RegionID,idm); if(RegionID == 1 && checkae == false)//NORD { c_ListNord.InsertItem(iRec,idm,-1); c_ListNord.SetItemText(iRec,1,idmm); } if(RegionID == 1 && checkae == true) { c_ListNord.InsertItem(iRec,idm,0); c_ListNord.SetItemText(iRec,1,idmm); } if(RegionID == 3 && checkae == false)//SÜD { iRec = c_ListSued.InsertItem(iRec,idm,-1); c_ListSued.SetItemText(iRec,1,idmm); } if(RegionID == 3 && checkae == true) { iRec = c_ListSued.InsertItem(iRec,idm,0); c_ListSued.SetItemText(iRec,1,idmm); } iRec++; recset.MoveNext(); } // Close the database database.Close(); } CATCH(CDBException, e) { } END_CATCH; delete TreeImageList; return true;Ich hoffe jemand findet den Fehler.
Danke
RS
-
Ich habs!
Ich habe delete an der falschen stelle aufgeruhfen.Danke RS