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 !!!
Re: VirtualListControl - можно ли использовать lParam
От: pg Россия  
Дата: 15.04.02 08:05
Оценка:
Здравствуйте Bigman, Вы писали:

B>VirtualListControl — можно ли использовать lParam для итемов (items) в списке...


Виртуальность листа тут скорее всего не при чём.
Ты не забываешь добавлять итемам маску LVIF_PARAM?


LV_ITEM Item;
.
.
Item.mask = LVIF_TEXT | LVIF_PARAM;
.
.
m_CommonList.InsertItem(&Item);
Глеб
Re[2]: VirtualListControl - можно ли использовать lParam
От: Bigman Россия  
Дата: 15.04.02 08:54
Оценка:
Здравствуйте pg, Вы писали:


pg>Виртуальность листа тут скорее всего не при чём.

pg>Ты не забываешь добавлять итемам маску LVIF_PARAM?


Эй нет.., так не пойдет, на то он и виртуальный список, что в него InsertItem(&Item) делать не нужно.Этот список создавался со стилем LVS_OWNERDATA, для работы с большим количеством записей. Все отображение ведется посредством сообщения LVN_GETDISPINFO
так что InsertItem там не канает.
С уважением, Bigman !!!
Re[3]: VirtualListControl - можно ли использовать lParam
От: Андрей Россия  
Дата: 15.04.02 10:43
Оценка:
Здравствуйте Bigman, Вы писали:

skip

А на кой хрен тебе lParam? У тебя же виртуальный listctrl — все свои данные ты сам хранишь
Re[4]: VirtualListControl - можно ли использовать lParam
От: Bigman Россия  
Дата: 16.04.02 00:03
Оценка:
Здравствуйте Андрей, Вы писали:

А>А на кой хрен тебе lParam? У тебя же виртуальный listctrl — все свои данные ты сам храниш

а вот ..., для красоты кода...:)) я уже без него сделал..
С уважением, Bigman !!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.