我在对CListCtrl作DleteAllItems操作后,再填写items后,滚动条也回到了第一个item,请问如何保存和恢复CListCtrl的滚动条位置?
谢谢

解决方案 »

  1.   

    谢谢关注,每次刷新的item内容都有可能不同,item项在没有选中的时候要获取是不是也要根据滚动条位置?
      

  2.   

    CListCtrl::EnsureVisible
    This method ensures that a list view item is at least partially visible. The list view control is scrolled if necessary. If the bPartialOK parameter is nonzero, no scrolling occurs if the item is partially visible.BOOL EnsureVisible(
    int nItem,
    BOOL bPartialOK ); 
      

  3.   

    to  solomonlxd(solomonlxd): 这样只能设置滚动条的位置,item并没有滚动to  lixiaosan(小三) : 这样好像还是要根据滚动条位置获取当前item,能不能具体点?
      

  4.   

    BOOL Scroll(
       CSize size 
    );MSDN说有这个
    看怎么用吧
      

  5.   


    SIZE sz;
    sz.cx = (nCurrentClickColumn-7)*ColumnWidth;
    sz.cy = 0;
    CSize szPointB(sz);
    ctlList.Scroll(sz);
      

  6.   

    ////////保存恢复滚动位置
    SIZE sz;
    sz.cx = GetScrollPos( SB_HORZ );
    sz.cy = GetScrollPos( SB_VERT );
    …… CSize szPointB(sz);
    ctlList.Scroll(sz);
    /////////