Anirban
May 17th, 1999, 10:29 AM
How to store data with items in a virtual listview while processing LVN_GETDISPINFO message? foolowing code doesn't work.
void CWAVListView::OnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
// TODO: Add your control notification handler code here
LV_ITEM* pItem = &(pDispInfo)->item;
DWORD dwIdx = pItem->iItem;
LCID nLocaleID = GetUserDefaultLCID();
if (pItem->mask & LVIF_TEXT)
{
switch(pItem->iSubItem)
{
case 0: // fill the main text
lstrcpy(pItem->pszText, pWaItem->m_csName);
break;
case 1: // item type
lstrcpy(pItem->pszText, csItemType);
break;
case 2: // timestamp
COleDateTime ModifiedDate( pWaItem->m_nYear,
pWaItem->m_nMonth,
pWaItem->m_nDay,
pWaItem->m_nHour,
pWaItem->m_nMinute,
pWaItem->m_nSecond );
lstrcpy(pItem->pszText, ModifiedDate.Format(0, nLocaleID));
break;
//default:
//break;
}//switch()
}
if(pItem->mask & LVIF_IMAGE)
{
pItem->iImage = icon;
}
//***NOTE: following code doesn't work, why? mask is never LVIF_PARAM !!
if(pItem->mask & LVIF_PARAM)
{
pItem->lParam = pWaItem->m_nItemID;
}
*pResult = 0;
}
void CWAVListView::OnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
// TODO: Add your control notification handler code here
LV_ITEM* pItem = &(pDispInfo)->item;
DWORD dwIdx = pItem->iItem;
LCID nLocaleID = GetUserDefaultLCID();
if (pItem->mask & LVIF_TEXT)
{
switch(pItem->iSubItem)
{
case 0: // fill the main text
lstrcpy(pItem->pszText, pWaItem->m_csName);
break;
case 1: // item type
lstrcpy(pItem->pszText, csItemType);
break;
case 2: // timestamp
COleDateTime ModifiedDate( pWaItem->m_nYear,
pWaItem->m_nMonth,
pWaItem->m_nDay,
pWaItem->m_nHour,
pWaItem->m_nMinute,
pWaItem->m_nSecond );
lstrcpy(pItem->pszText, ModifiedDate.Format(0, nLocaleID));
break;
//default:
//break;
}//switch()
}
if(pItem->mask & LVIF_IMAGE)
{
pItem->iImage = icon;
}
//***NOTE: following code doesn't work, why? mask is never LVIF_PARAM !!
if(pItem->mask & LVIF_PARAM)
{
pItem->lParam = pWaItem->m_nItemID;
}
*pResult = 0;
}