我的Listcontrol是一个很长的列表,修改记录集中间的一个记录并刷新数据库之后,Listcontrol自动回到从开头显示,我又要拉滚动条,很烦!!怎样让Listcontrol刷新之后自动从修改的那一行开始显示呢???

解决方案 »

  1.   

    极度关注,我也想知道。
    我的问题是一边不停的插入大量item,一边删除一小部分。
    想让CListCtrl刷新之后插入的一行开始显示呢???
      

  2.   

    帮你up吧,这个东西可能要子类化才能解决~ListControl好像没这个方法
      

  3.   

    BOOL EnsureVisible( int nItem, BOOL bPartialOK );呵呵,我也找到了,原来是这个~
    // Ensure that the last item is visible.
    int nCount = pmyListCtrl->GetItemCount();
    if (nCount > 0)
       pmyListCtrl->EnsureVisible(nCount-1, FALSE); // 挪到最下面~
      

  4.   

    我找到了!!解决办法:
    if(count> m_Boy.GetCountPerPage())
    {
    CRect rect;
    m_Boy.GetSubItemRect(1,2,LVIR_BOUNDS,rect);
    int height = rect.bottom - rect.top;
    CSize size;
    size.cx = 0;
    size.cy = height * m_Boy.GetItemCount();
    m_Boy.Scroll(size);
    }哈哈