难道没有一次解决的办法么?

解决方案 »

  1.   

    首先控件的属性里不要勾上单选(Single Selection)
    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
       }
    }
      

  2.   

    不能一次获得所有子项,因为项目数不是固定的。自己逐个获取吧,GetItemText/GetItemData/GetItem。
      

  3.   

    恩,还是写FOR循环得了。这帖子留这里,明天结贴。
      

  4.   

    不好意思,会错意了ListCtrl之间的Item拖动。我发现我每次GetItem()只能得到一个SubItem的数据
    -------------------------------------------------------------------
    你的题意我还是不能很清楚的了解,drag?drop?       获取子项,像2楼说的,用CString GetItemText( int nItem, int nSubItem ) 
    http://www.codeproject.com/listctrl/dragtest.asp   
    http://www.codeproject.com/listctrl/filedroplistctrl.asp
      

  5.   

    对呀,需要做托的动作了,IDropTarget从这个继承,为自己的listctrl写借口了,呵呵.