我需要实现如下一个操作:
在一个CListCtrl列表中,有大于一屏的数据项,而我通过查找,定位出了某一项,但此项并不在我的显示区域内,我需要将此项移动到用户可视区域,如何操作?
我尝试使用下述方式,但它只移动滚动条,并不移动相应的内容:
SCROLLINFO ScrollInfo;
m_listUser.GetScrollInfo(SB_VERT, &ScrollInfo);
ScrollInfo.nPos = dwIndex;
m_listUser.SetScrollInfo(SB_VERT, &ScrollInfo,TRUE);
在一个CListCtrl列表中,有大于一屏的数据项,而我通过查找,定位出了某一项,但此项并不在我的显示区域内,我需要将此项移动到用户可视区域,如何操作?
我尝试使用下述方式,但它只移动滚动条,并不移动相应的内容:
SCROLLINFO ScrollInfo;
m_listUser.GetScrollInfo(SB_VERT, &ScrollInfo);
ScrollInfo.nPos = dwIndex;
m_listUser.SetScrollInfo(SB_VERT, &ScrollInfo,TRUE);
ClistCtrl 尝试一下SetHotItem吧,没试过,但原理相同
ClistCtrl::Scroll移动到相应的行。
int nCount = pmyListCtrl->GetItemCount();
if (nCount > 0)
pmyListCtrl->EnsureVisible(nCount–1, FALSE);