怎么解决CListCtrl 刷新后自动跳到首行

tixisong 2012-05-22 10:29:11
如题。

情况是这样,双击一行,弹出个对话框,更新数据后(注明这数据是放到链表中),再重新插入(再遍历链表),然后显示到ListCtrl中,结果就跑到首行。我想要的就是更新数据后,再定位后这一行。

用SetItemStata(i,LVIS_SELECTED,LVIS_SELECTED)只能选中这行,滚动条却不定位这一行,怎么处理,高手?
...全文
234 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ls443085074 2012-05-22
  • 打赏
  • 举报
回复
在插入先先获取当前scroll的位置GetScrollPos,然后插入后在SetScrollPos(npos),淡然这样弄会有一定误差,不过应该也看不出来,你要很准确的计算定位。去看看Cwnd的成员函数,看看怎么利用里面的函数计算pos
Eleven 2012-05-22
  • 打赏
  • 举报
回复
另外,CListCtrl::Scroll()应该也可以
Eleven 2012-05-22
  • 打赏
  • 举报
回复
CListCtrl::EnsureVisible(nItem, FALSE);
zjs100901 2012-05-22
  • 打赏
  • 举报
回复
CListCtrl::EnsureVisible
BOOL EnsureVisible( int nItem, BOOL bPartialOK );

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧