VirtualListControl - можно ли использовать lParam
От: Bigman Россия  
Дата: 15.04.02 04:20
Оценка:
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;    
}
С уважением, Bigman !!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.