none
多选列表框中如何删除同时选取的多个选项? RRS feed

答案

  • 一、

    int nCount = m_listBox.GetSelCount();
     int* buffer = new int[nCount];
     memset(buffer, -1, sizeof(int)*nCount);
    
     m_listBox.GetSelItems(nCount, buffer);
    
     for(int i=nCount-1; i>=0; i--)
     {
     m_listBox.DeleteString(buffer[i]);
     }
     delete[] buffer;

    二、

    // 获取所有选择项的索引
    int nCount = m_myODListBox.GetSelCount();
    CArray<int,int> aryListBoxSel;
    
    aryListBoxSel.SetSize(nCount);
    m_myODListBox.GetSelItems(nCount, aryListBoxSel.GetData()); 
    
    // Dump the selection array.
    AFXDUMP(aryListBoxSel);
    

     

    第二个我也没搞明白。。第一个我已经可以实现了。

    2010年5月20日 4:43

全部回复

  • 要么删除全部,要么一个个删除,没有别的删除选项

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月19日 13:32
    版主
  • 要么删除全部,要么一个个删除,没有别的删除选项

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP

    可以的。我在其它论坛有得到这种方法。
    2010年5月19日 15:28
  • 嗯,是一个个删除吧?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月19日 21:58
    版主
  • 一、

    int nCount = m_listBox.GetSelCount();
     int* buffer = new int[nCount];
     memset(buffer, -1, sizeof(int)*nCount);
    
     m_listBox.GetSelItems(nCount, buffer);
    
     for(int i=nCount-1; i>=0; i--)
     {
     m_listBox.DeleteString(buffer[i]);
     }
     delete[] buffer;

    二、

    // 获取所有选择项的索引
    int nCount = m_myODListBox.GetSelCount();
    CArray<int,int> aryListBoxSel;
    
    aryListBoxSel.SetSize(nCount);
    m_myODListBox.GetSelItems(nCount, aryListBoxSel.GetData()); 
    
    // Dump the selection array.
    AFXDUMP(aryListBoxSel);
    

     

    第二个我也没搞明白。。第一个我已经可以实现了。

    2010年5月20日 4:43
  • 第二个不过是把int[]换成CArray而已……CArray的用法可以看VC文档里面的COLLECT示例。不过新的项目建议用STL里面的vector,这个不需要MFC支持也可以用。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月20日 11:18
    版主