恳请帮忙,遇到一个不会的问题!List control控件这么返回所选列的序号??多谢
我用msdn里的例子
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
   TRACE0("No items were selected!\n");
else
{
   while (pos)
   {
      int nItem = pList->GetNextSelectedItem(pos);
      TRACE1("Item %d was selected!\n", nItem);
      // you could do your own processing on nItem here
   }
}
返回的结果总是下一个的,减一的话,当选第一个就错了
怎么办!!!!

解决方案 »

  1.   

    序号 = m_List.GetNextItem( -1, LVNI_SELECTED)
      

  2.   

    m_List.GetNextItem( -1, LVNI_SELECTED)
    是返回选中的最靠顶部的那个
    如果只操作一项就把styles->single selection选中
      

  3.   

    GetNextSelectedItem就是按照顺序得到选中的item
      

  4.   

    可里面的pop还得用GetFirstSelectedItemPosition得到吗
    我试了,怎么不不能实现呢我的目的试选中一项进行操作!!
      

  5.   

    pos只不过是mfc的一种封装策略,如果你不喜欢用pos,那么可以用GetNextItem
    int nSelected = -1;
    while((nSelected = m_cListCtrl.GetNextItem(nSelected, LVIS_SELECTED)) != -1)
    {
    TRACE("Selected item is %d\n", nSelected);
    }