我的程序由于要向列表中插入大量的数据,因此自己派生了一个列表,重载了LVN_GETDISPINFO消息。
并修改了OWNERDATA属性,可是后来要修改列表中的数据时,发现当列表调用SetItemText函数时,就会出现问题,跟踪调试发现,错误是由OWNERDATA属性所引起的。 不知道,该如何解决,急,大哥门帮帮忙啊。
并修改了OWNERDATA属性,可是后来要修改列表中的数据时,发现当列表调用SetItemText函数时,就会出现问题,跟踪调试发现,错误是由OWNERDATA属性所引起的。 不知道,该如何解决,急,大哥门帮帮忙啊。
因为这个数据都是你自己负责存储的,所以你只要改变你存储的内容,然后告诉list你要改变了,就可以了。还有一个m_List.SetItemCountEx是告诉list你有多少条记录。
我的OnGetdispinfo(NMHDR* pNMHDR, LRESULT* pResult)函数如下
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem= &(pDispInfo)->item;
int iItemIndex= pItem->iItem;
DATA *ptr = array[iItemIndex];
if(pItem->mask & LVIF_TEXT)//为什么调用m_List.Invalidate()后没有执行到语句体内?
//这样好象就不能更新内容了哦。
{
switch(pItem->iSubItem)
{
case 0:
lstrcpyn(pItem->pszText, ptr->GroupNo, pItem->cchTextMax);
break;
……//
}
}
大哥还能再帮忙看看不?