我利用以下代码在CListCtrl列表项中查找该项目:LVFINDINFO info;
info.flags=LVFI_PARTIAL|LVFI_STRING;
info.psz=strFindItem;
while((index=m_LcForMeetingUser.FindItem(&info)) != -1)
{
m_LcForMeetingUser.DeleteItem(index);
}
一般情况下 我可以找到该项并能正确删除 但是 我现在遇到这种情况就是 如果在列表项中有两个选项 比如说 名称为:“线程”、“线程处理”这两个列表项 当我想删除名称为线程列表项的时候就不能正确删除 ,有时候正确删除 有时候就删除了线程处理列表项 我想是那个查找的字符窜有问题 我怎么设置让他必须全部匹配才返回index啊 ? 谢谢大家 急等啊
info.flags=LVFI_PARTIAL|LVFI_STRING;
info.psz=strFindItem;
while((index=m_LcForMeetingUser.FindItem(&info)) != -1)
{
m_LcForMeetingUser.DeleteItem(index);
}
一般情况下 我可以找到该项并能正确删除 但是 我现在遇到这种情况就是 如果在列表项中有两个选项 比如说 名称为:“线程”、“线程处理”这两个列表项 当我想删除名称为线程列表项的时候就不能正确删除 ,有时候正确删除 有时候就删除了线程处理列表项 我想是那个查找的字符窜有问题 我怎么设置让他必须全部匹配才返回index啊 ? 谢谢大家 急等啊
不过我找到了另外一种方法解决了:
int n=m_LcForMeetingUser.GetItemCount();
for (int i=0;i<n;i++)
{
CString strTextm_LcForMeetingUser.GetItemText(i,0);
if(strcmp(strText,sNick) == 0 )
{
(* mcuit).pWindows->m_LcForMeetingUser.DeleteItem(i);
break;
}
}
这样就不会出现那种问题了不过还是谢谢你们了 哎 自己还是没有好好思考....结贴
info.flags=LVFI_PARTIAL|LVFI_STRING;
info.psz=strFindItem;
while((index=m_LcForMeetingUser.FindItem(&info)) != -1)
{
m_LcForMeetingUser.DeleteItem(index);
} 直接将info.flags=LVFI_PARTIAL|LVFI_STRING;
改为info.flags=LVFI_STRING;
the item text of the matching item must exactly match the string pointed to by the psz member.哎当初怎么就没有看到呢.....