我想用ListCtrl控件做一个列表,但我不知怎样才能定位ListCtrl上的记录位置。
比如在ListCtrl上有100条记录每个记录的格式是
标头
No. txt1 txt2 txt3
数据
0 a0 b0 c0
1 a1 b1 c1
我想查找记录a1在哪行,并将光标定位在这行上(就象点击此行一样)。
请问怎样做才能做到?
我是一个VC初学者,请各位说的详细些。
我保证答者有分。
Up我也欢迎
比如在ListCtrl上有100条记录每个记录的格式是
标头
No. txt1 txt2 txt3
数据
0 a0 b0 c0
1 a1 b1 c1
我想查找记录a1在哪行,并将光标定位在这行上(就象点击此行一样)。
请问怎样做才能做到?
我是一个VC初学者,请各位说的详细些。
我保证答者有分。
Up我也欢迎
http://www.codeguru.com/listview/index.shtml
有你要的所有内容..OK.
光标定位用
YourList.SetItemState(YourFindIndex, LVIS_SELECTED, LVIS_SELECTED);
YourList.SetFocus();
我现在虽然可以定位行,但是它的光标(滚动条)却不动,用什么方法能做到呀。
就是说可不可以像我在ListCtrl上按向下键时那样滚动
我现在虽然可以定位行,但是它的光标(滚动条)却不动,用什么方法能做到呀。
就是说可不可以像我在ListCtrl上按向下键时那样滚动
l_buff="a1";
int nItem=FindItems(1,l_buff);
char buff[20];
lstrcpy(buff,l_buff);
LVITEM pitem;
if(nItem!=-1)
{
pitem.mask=LVIF_STATE|LVIF_TEXT|LVIF_IMAGE;
pitem.iItem=nItem;
pitem.stateMask=LVIS_SELECTED;
pitem.state=LVIS_SELECTED;//
pitem.iSubItem=0;
pitem.iImage=0;//如果没有设置图像列表此值可忽略
pitem.pszText=buff;
m_work.SetItem(&pitem);//m_work为指向工程中的CListCtrl控件的变量
}int FindItems(int column, CString ne)//此函数查找你要找的内容在第几行
{//column是CListCtrl中的列号;ne为要查找的内容,也可改为char型指针
int count;
int i;
CString temp;
count=m_work.GetItemCount();
for(i=0;i<count;i++)
{
temp=m_work.GetItemText(i,column);
if(temp==ne)
break;
}
if(i!=count)
return i;
else return -1;
}