怎样获取-->多选ListBox中有那些项被选中了?

解决方案 »

  1.   

    //Stuff for storing the Items in memory
    //declare a linked list of LV_ITEMS
    CList<LVITEM*, LVITEM*> listItems; 
    //iterator for the linked list of Items
    POSITION listPos;
    //pointer to LV_ITEMs in memory (we will do "new" in  the loop)
    //Retrieve the selected items, store them in memory and delete them from the CListCtrlLVITEM* pItem; 
    POSITION pos = pDragList->GetFirstSelectedItemPositio(); 
    //iterator for the CListCtrl
    while(pos) 
    {
    //In this loop, we simply retrieve info on selected items,
    // and put them in memory.
    //Set up a new LV_ITEM
    pItem = new LV_ITEM;
    ZeroMemory(pItem, sizeof (LV_ITEM)); 
    //allocate and clear memory space for LV_ITEM
    pItem->iItem = m_nDragIndex;
    pItem->mask  = LVIF_TEXT | LVIF_IMAGE;
    pItem->pszText= new char; 
    pItem->cchTextMax = 255;
    pItem->iItem = m_nDragIndex; 
    pDragList->GetItem(pItem); 
    listItems.AddTail(pItem);
    }
      

  2.   

    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
    ASSERT(pListCtrl != NULL);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
       }
    }
      

  3.   

    for(int i=0;i<ListBox.GetCount();i++)
    {
        if(!ListBox.GetSel(i))
        {
           ...
         }
    }
      

  4.   

    上面的代码有错误:
    看下面的 CList<LVITEM*, LVITEM*> listItems; 
    POSITION listPos;LVITEM* pItem; 
    POSITION pos = pDragList->GetFirstSelectedItemPosition(); 
    while(pos) 
    {
           m_nIndex = pDragList->GetNextSelectedItem(pos);
           pItem = new LV_ITEM;
           //allocate and clear memory space for LV_ITEM
           ZeroMemory(pItem, sizeof (LV_ITEM)); 
           pItem->iItem = m_nIndex;
           pItem->mask  = LVIF_TEXT | LVIF_IMAGE;
           pItem->pszText= new char; 
           pItem->cchTextMax = 255;
          
           pList->GetItem(pItem);
           listItems.AddTail(pItem);}msdn上也有例子:
    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
    ASSERT(pListCtrl != NULL);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
       }
    }