我有一个调用ListView_GetItem()的Windows应用程序,它返回FALSE (错误)。请参阅下面的代码。传递的值对于sel_index是第10行,对于Col是第1行,buf足够大,GetLastError()返回0。
Windows ListView_GetItem宏文档没有说明故障原因或可能的错误代码。有人能告诉我什么可能是错的吗?
我创建了ListView
hList = CreateWindow(WC_LISTVIEW, "", WS_CHILD | WS_BORDER | LVS_REPORT | WS_HSCROLL | WS_VSCROLL | WS_EX_CLIENTEDGE, ... etc
{
LV_ITEM Item; // List view item structure
char buf[10];
Item.mask=LVIF_TEXT;
Item.pszText = buf; // buffer
Item.iItem = sel_index; // selected line
Item.iSubItem = Col; // want subitem
if(!ListView_GetItem(hList, &Item))
{
PrintErr("\r\nGetSubItem failed, error=%d",GetLastError());
return "";
}
return (Item.pszText);
}发布于 2015-01-19 11:31:59
你把大部分的字段都没有初始化。不设置cchTextMax是最大的伤害。像这样初始化结构:
LV_ITEM Item = {0}; 并将cchTextMax设置为10。
Item.pszText = buf;
Item.cchTextMax = 10;https://stackoverflow.com/questions/28023476
复制相似问题