Am declarat o structura si apoi un tablou de structuri :
Code: Select all
typedef struct tagListItem
{
CString sItemData;
CString sInt;
CString sString;
CString sList;
CString sDateTime;
CString sRandom;
}ListItem;
CArray<ListItem,ListItem> m_arrListItem;
Code: Select all
void CTestList6View::OnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem= &(pDispInfo)->item;
CTestList6Doc* pDoc = (CTestList6Doc*)GetDocument();
if(pItem->mask & LVIF_TEXT)
{
switch(pItem->iSubItem)
{
case 0:
lstrcpy(pItem->pszText, pDoc->m_arrListItem.GetAt(pItem->iItem).sInt);
break;
case 1:
lstrcpy(pItem->pszText, pDoc->m_arrListItem.GetAt(pItem->iItem).sString);
break;
case 2:
lstrcpy(pItem->pszText, pDoc->m_arrListItem.GetAt(pItem->iItem).sList);
break;
case 3:
lstrcpy(pItem->pszText, pDoc->m_arrListItem.GetAt(pItem->iItem).sDateTime);
break;
case 4:
lstrcpy(pItem->pszText, pDoc->m_arrListItem.GetAt(pItem->iItem).sRandom);
break;
}
}
if(pItem->mask & LVIF_IMAGE)
{
if(0 == pItem->iItem % 2)pItem->iImage = 2;
else if(0 == pItem->iItem % 3)pItem->iImage = 1;
else pItem->iImage = 0;
}
// if(10 == pItem->iItem)SetRowColors(pItem->iItem,RGB(230,255,230),-1);
*pResult = 0;
}
Insa raman unele caracteristici pe care in modul de lucru virtual nu stiu cum se rezolva :
- Cum se poate folosi SetItemData/GetItemData ? Pentru asta am pastrat o variabila speciala in structura listei (sItemData), dar apoi nu stiu cum se acceseaza !?
- Sortarea listei nu mai merge clasic ... o solutie ar fi ordonarea structurii si apoi reincarcarea listei ?
- Nu stiu cum as putea seta iconitza la o coloana diferita de coloana 0 ... acest lucru l-am facut in mod normal cu
dar aceasta solutie nu mai merge in modul virtual ...
Code: Select all
ListCtrl.SetItem(3,4,LVIF_TEXT | LVIF_IMAGE,_T("ListItemText"),2,0,0,0);
- Acest control listview are diferite imbunatatiri (de exemplu capacitatea de a colora linii, coloane sau celule, in mod normal acest lucru facandu-se cu
) ... toate acestea nu se mai pot folosi acum ...
Code: Select all
SetCellColors(7,3,RGB(80,255,55),-1);