我们在应用中有时候需要在列表控件中找到一条记录,而这条记录可能不再当前页,而我们需要把这条记录找到并高亮显示到当前页中,那么如何实现呢
代码如下:
CString s1 = "要查找的内容";
for( int Item=0;Item<"列表控件的总行数";Item++ )
{
//逐行查询,获取该行子项内容
CString s2 = ((CListCtrl*)GetDlgItem(IDC_LIST1))->GetItemText( Item, "查找内容相匹配的列号" );
//比较查询
if( s1 == s2 )
{ //找到了
//高亮显示该行
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetItemState(Item,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
//列表框设置为对话框的焦点,使其内部的各种显示操作能够显示出来
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetFocus();
//上下滚动到这一行可见
((CListCtrl*)GetDlgItem(IDC_LIST1))->EnsureVisible( Item, TRUE );
//不找了,不支持多选,直接返回
return;
}
}