//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); }
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 } }
上面的代码有错误: 看下面的 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 } }
//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);
}
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
}
}
{
if(!ListBox.GetSel(i))
{
...
}
}
看下面的 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
}
}