Re: add items to a list view
Try it something like this instead:
Code:
LVITEM lvi;
memset(&lvi,0,sizeof(LVITEM));
lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
lvi.state = 0;
lvi.stateMask = 0;
for (int k = 0; k < 3; k++)
{
lvi.iItem = k;
lvi.iSubItem = 0;
//lvi.lParam = (LPARAM) &pi[k];
int res = ListView_InsertItem(hlistview, &lvi);
ListView_SetItemText(hlistview,res,0,pi[k].szKind);
ListView_SetItemText(hlistview,res,1,pi[k].szBreed);
ListView_SetItemText(hlistview,res,2,pi[k].szPrice);
}
Re: add items to a list view
Thank you ever so much!
By the way, do yo think there's any way to add a line between the rows (not that important to me though)
Re: add items to a list view
Also, I ma having a lot of compiler errors because of this:
Code:
struct petinfo
{
TCHAR szKind[10];
TCHAR szBreed[50];
TCHAR szPrice[20];
};
std::map<int, petinfo> rows;
{
petinfo pinfo = { TEXT("Name1"), TEXT("Surname1"), TEXT("Age1") };
rows.insert( std::make_pair(0, pinfo) );
}
{
petinfo pinfo = { TEXT("Name2"), TEXT("Surname2"), TEXT("Age2") };
rows.insert( std::make_pair(1, pinfo) );
}
std::map<int, petinfo>::const_iterator itt;
LVITEM lvi;
memset(&lvi,0,sizeof(LVITEM));
lvi.mask = LVIF_TEXT | LVIF_STATE;
lvi.state = 0;
lvi.stateMask = 0;
for(itt=rows.begin(); itt!=rows.end(); ++itt)
{
lvi.iItem = itt._Dec;
lvi.iSubItem = 0;
ListView_InsertItem(hlistview, &lvi);
ListView_SetItemText(hlistview, itt, 0, pinfo[itt].szKind);
ListView_SetItemText(hlistview, itt, 1, pinfo[itt].szBreed);
ListView_SetItemText(hlistview, itt, 2, pinfo[itt].szPrice);
}
what am Idoing wrong?
thanks
Re: add items to a list view
I am sorry that was my mistake!
Code:
for(itt=rows.begin(); itt!=rows.end(); ++itt)
{
lvi.iItem = itt->first;
lvi.iSubItem = 0;
ListView_InsertItem(hlistview, &lvi);
ListView_SetItemText(hlistview, itt->first, 0, (LPWSTR)itt->second.szBreed);
ListView_SetItemText(hlistview, itt->first, 1, (LPWSTR)itt->second.szKind);
ListView_SetItemText(hlistview, itt->first, 2, (LPWSTR)itt->second.szPrice);
}
Re: add items to a list view
I'm not sure what the problem is(was) but you should be consistent with your string macros. If you use the _T() or TEXT() macros, then you should use the tstring versions everywhere:
Code:
ListView_SetItemText(hlistview, itt->first, 0, (LPTSTR)itt->second.szBreed);
ListView_SetItemText(hlistview, itt->first, 1, (LPTSTR)itt->second.szKind);
ListView_SetItemText(hlistview, itt->first, 2, (LPTSTR)itt->second.szPrice);