// 简单的查找函数
// FindString(CListCtrl& , 查找内容 , 开始位置 , 到达底部时是否从头查找)
int FindString(CListCtrl& list,LPCTSTR str,int startIndex,BOOL warp /* = TRUE */){
int colCount = list.GetHeaderCtrl()->GetItemCount();
CString* field = new CString[colCount];
int index;
if(startIndex < 0) index = 0;
else index = startIndex + 1;
BOOL isFind = FALSE;
int out = -1;
for(; index < list.GetItemCount(); index ++){
for(int col = 0; col < colCount; col ++)
field[col] = list.GetItemText(index,col);
for(int col = 0; col < colCount; col ++){
if(field[col].Find(str) != -1){
out = index;
isFind = TRUE;
break;
}
}
if(isFind) break;
}
delete[] field;
field = 0;
if(warp)
if(!isFind)
list.SetItemState(-1,0,LVIS_SELECTED);
return out;
}
/*************************************************/
//测试
CListCtrl& list; // 需要查找的LIST
CString str = "test"; //需要查找的字符串
int index = -1; //开始位置
index = FindString(list,str,index,TRUE);
if(index != -1){
list.EnsureVisible(index,FALSE);
list.SetItemState(index,LVIS_SELECTED,LVIS_SELECTED);
list.SetFocus();
}
本文介绍了一个用于CListCtrl的查找函数FindString的具体实现,该函数能够在列表中搜索特定字符串,并返回找到的位置。通过示例展示了如何使用该函数进行查找操作。
1万+

被折叠的 条评论
为什么被折叠?



