我用CListCtrl类生成一个列表框,名称为m_ListCtrl,请问在程序中如何用命令选中列表框中的一行?

解决方案 »

  1.   

    m_ListCtrl.SetItemState(i,  LVIS_SELECTED,  LVIS_SELECTED); //选定第i行
    m_ListCtrl.SetItemState(i, 0,  0);    //取消选定
      

  2.   

    m_List.SetItemState(nItem, LVIS_SELECTED,LVIS_SELECTED);
      

  3.   


    m_list.SetCurSel(Row );//如果是单选,则使用此函数  ROW 为行的索引号
      

  4.   

    SetItemState(index, LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED);
      

  5.   

    Snow_Ice11111 、BombZhang:你们说的方法我都试了,不好使呀,我在程序中执行这些语句列表框仍然没有行被选中,我错在哪了呢?
      

  6.   

    m_ListCtrl必须是通过MFC Classwizard添加且与界面上CListCtrl控件绑定的对应控件型变量。
      

  7.   

    Snow_Ice11111 :我的m_ListCtrl就是通过MFC Classwizard添加且与界面上CListCtrl控件绑定的对应控件型变量,可点完按钮执行完程序后列表框控件仍没有行被选中呀。拜托您指点一下,先谢了!!!
      

  8.   

    m_ListCtrl.SetItemState(3,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
    m_ListCtrl.SetFocus();现在试试。其实用前面一行就已经选中指定行(这里是第四行),你用Tab键切换控件焦点到CListCtrl上就知道了。另外,我上面关于取消选定选定的方法有误。
      

  9.   

    m_ListCtrl.EnsureVisible(m_ListCtrl.GetItemCount()-1,FALSE);  //显示最后一行m_ListCtrl.SetItemState(i,0,0xffffffff);    //取消第i项选定