C+SDK中向ListView控件SendMessage数据GetLastError() = 6(句柄无效)
我想在 ListView 中呈现数据,就好象任务管理器中的进程列表,使用以下代码来实现
- C/C++ code
HWND hList = GetDlgItem(hwnd,IDC_LISTVIEW);for(start = list->next; start != NULL; start = start->next){ LV_ITEM lvi; ZeroMemory(&lvi, sizeof(LV_ITEM)); lvi.mask = LVIF_TEXT; lvi.iItem = 0; lvi.iSubItem = 0; lvi.pszText = start->ID;//链表中的字符串 SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&lvi);// GetLastError() = 6,句柄无效 //这里free()链表占用的内存}郁闷的时,句柄无效的原因是因为 ListView 使用了 LVS_REPORT 风格。有什么办法解决?
[解决办法]
LV_ITEM 又不是listview,这只是个ListView里面的一个项而已。干什么向这个项目发送消息?我想楼主肯定是弄错了
[解决办法]
无论是用ListView_InsertItem(),还是用 SendMessage(hList,LVM_INSERTITEM...),
LVS_REPORT插入行的相关代码都不会影响到ListView控件的操作,应该是其它地方的错误。