ListView_GetItem() returns 错误
ListView_GetItem() returns FALSE
我有一个 Windows 应用程序,我在其中调用 ListView_GetItem() 并且它 returns FALSE(错误)。请参阅下面的代码。传递的值是sel_index的第10行和Col的1,buf足够大,GetLastError() returns 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);
}
您未初始化大部分字段。不设置 cchTextMax
是最痛苦的。像这样初始化结构:
LV_ITEM Item = {0};
并将cchTextMax
设置为10
。
Item.pszText = buf;
Item.cchTextMax = 10;
我有一个 Windows 应用程序,我在其中调用 ListView_GetItem() 并且它 returns FALSE(错误)。请参阅下面的代码。传递的值是sel_index的第10行和Col的1,buf足够大,GetLastError() returns 0.
Windows的在线文档ListView_GetItem 宏不会说明失败的原因或可能的错误代码。
谁能告诉我可能出了什么问题?
我用
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);
}
您未初始化大部分字段。不设置 cchTextMax
是最痛苦的。像这样初始化结构:
LV_ITEM Item = {0};
并将cchTextMax
设置为10
。
Item.pszText = buf;
Item.cchTextMax = 10;