ListCtrl中有很多条记录,如何快速定位到第100条记录上?

解决方案 »

  1.   

    编译出错:
    'SetCurSel' : is not a member of 'CListCtrl'
      

  2.   

    SendMessage(ListCtrlWnd,LB_SETCURSEL,(WPARAM)99,0L)
      

  3.   

    请问:ListCtrlWnd输入什么?是ListCtrl的ID吗?
      

  4.   

    请问这样写是否正确,编译没问题,但没效果。
    ::SendMessage(GetDlgItem(IDC_LISTCTRL)->GetSafeHwnd(),LB_SETCURSEL,(WPARAM)99,0L);
      

  5.   

    //滚动ListView
    CSize cs;
    cs.cx=0;
    cs.cy=0;
    UINT nFirst = m_ListCtrl.GetTopIndex();     //得到当前可视区第一栏编号
    UINT nLast = nFirst + m_ListCtrl.GetCountPerPage()-1;//得到当前可视区第后一栏编号
    if(100<nFirst) //决定该滚动多少距离
    cs.cy=( 100 - (UINT)((nFirst+nLast)/2) ) * 17;
    if(100>nLast)
    cs.cy=( 100 - (UINT)((nFirst+nLast)/2) ) * 17;
    m_ListCtrl.Scroll(cs);//滚
    m_ListCtrl.SetFocus();//使ListCtrl为当前区,以免选中后为灰色
    m_ListCtrl.SetItemState(100 , LVIS_SELECTED, LVIS_SELECTED);//选中
      

  6.   

    To kangoo(小乐) :
      谢谢你的代码,程序可以运行,但定位不对,实际运行后定位在118行上面,不知是否与*17有关?
      

  7.   

    m_ctrlList.EnsureVisible(iIdx, FALSE);
    m_ctrlList.SetItemState(iIdx, LVIS_FOCUSED | LVIS_SELECTED, 
    LVIS_FOCUSED | LVIS_SELECTED);
      

  8.   

    Bind(一砣很想插满鲜花的牛屎) 的方法可以!多谢各位!