CListCtrl控件行一行的逐渐添加后,让控件自动滚动,定位到刚加入的最后一项??
如题:
具有添加后,不用手动拖动滚动条了。
问题点数:10、回复次数:8Top
1 楼orbit(走了走了)回复于 2006-03-06 19:01:49 得分 5
EnsureVisiableTop
2 楼payou333(十年编一行)回复于 2006-03-06 19:51:17 得分 0
关注中Top
3 楼mosing(A Crimson Cosmos)回复于 2006-03-07 00:39:09 得分 5
添加list item后,使用CListCtrl::Scroll(CSize);
如果添加的list item 不在最后一行,需要使用CListCtrl::GetTopIndex()得到可见的第一个item index。根据新添加的list item的index,计算出需要滚动的距离。使用CListCtrl::Scroll(CSize); list item的高度可以使用BOOL GetItemRect(int nItem, LPRECT lpRect, UINT nCode/*=LVIR_BOUNDS*/) const;得到
Top
4 楼ponydph(pony)回复于 2006-03-07 21:34:04 得分 0
谢谢Top
5 楼Mackz(在相互)回复于 2006-03-07 23:09:40 得分 0
pListCtrl->EnsureVisiable(pListCtrl->GetItemCount());Top
6 楼tcbc2124()回复于 2006-03-08 09:49:57 得分 0
int nCount = m_LIST.GetItemCount();
BOOL temp=m_LIST.EnsureVisible(nCount,TRUE);
可是temp老是返回0,没有实现滚动,请问可能是什么原因造成的Top
7 楼OwenKing()回复于 2006-03-08 16:00:04 得分 0
tcbc2124()
BOOL temp=m_LIST.EnsureVisible(nCount - 1,TRUE);
减1试试
Top
8 楼Mackz(在相互)回复于 2006-03-08 20:16:06 得分 0
是我错了,要减1。Top




