VirtualListControl — можно ли использовать lParam для итемов (items) в списке...
Иными словами есть проблемма, обработчик сообщения LVN_GETDISPINFO — OnGetdispinfo(NMHDR *pNMHDR, LRESULT *pResult) никогда не вызывается для возврата параметра (lParam)
Т.е. условие if (pItem->mask & LVIF_PARAM) (см. код ниже) всегда будет ложным, чтобы вы не делали.....
Может я чего-то не понимаю.. ??? Объясните Плизззз...
void CCommonListCtrl::OnGetdispinfo(NMHDR *pNMHDR, LRESULT *pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem= &(pDispInfo)->item;
DWORD i = pItem->iItem;
long ColumnID = GetColumnIDByOrder(pItem->iSubItem);
IObjectListInform* pObject = GetItemObject(i);
if (pItem->mask & LVIF_PARAM) // нужен параметр элемента?
pItem->lParam = GetItemParam(pObject);
if (pItem->mask & LVIF_TEXT) // нужен текст элемента?
{
strcpy( pItem->pszText, this->m_HeaderItemList[ColumnID].m_GetTextFunc(pObject));
}
/*if (pItem->mask & LVIF_IMAGE) // нужна картинка?
{
pItem->iImage = pDoc->GetImage(n);
pItem->state = pDoc->GetStateImage(n);
}*/
*pResult = 0;
}