在列表框里同时选中了几行,有什么方法可以读取全部被选中的行的内容(即)?好像可以定义一个CArray类的数组来读取,然后使用Listbox的GetSelItems和CArray的GetData来得到所需要的数据,到这里我就不知道如何从数组中取出数据了.另外,如何让Listbox动态的显示或隐藏?我只知道EnableWindow是用来控制可用与否,不知道哪个是用来设置隐藏的.谢谢知道方法的高手说明的详细点,我是VC初学者,最好能写出代码以举例说明,谢谢!

解决方案 »

  1.   

    Copy from MSDNCArray<CPoint,CPoint> myArray;
    CPoint pt;// Add elements to the array.
    for (int i=0;i < 10;i++)
      myArray.Add( CPoint(i, 2*i) );// Modify all the points in the array.
    for (i=0;i <= myArray.GetUpperBound();i++)
    {
      pt = myArray.GetAt(i); //根据索引来取数组中的数据
      pt.x = 0;
      myArray.SetAt(i, pt);
    }
      

  2.   

    不知道哪个是用来设置隐藏的.
    ------
    m_list.ShowWindow(SW_HIDE);//隐藏控件
      

  3.   

    基本上是这样:
    int nCount = m_DefList1.GetSelCount();
    CArray<int,int> aryListBoxSel;

    aryListBoxSel.SetSize(nCount);
    m_DefList1.GetSelItems(nCount, aryListBoxSel.GetData()); //获得所有被选中的索引
    for(i=0; i<nCount; i++)
    {
    CString Temp;
    m_DefList1.GetText(aryListBoxSel[i], Temp);//获得每项的文字保存在Temp
    }
      

  4.   

    LPINT pitems = new INT(list.GetSelCount() );
    GetSelItems(list.GetSelCount(), pitems);
      

  5.   

    谢谢 laiyiling(陌生人_潜心钻研MS技术) ,多选的问题已经解决.另外那个还是不能动态的显示或隐藏,我是想根据不同的选择来隐藏或显示两个Listbox.改成EnableWindow(SW_HIDE)或EnableWindow(SW_SHOW)都没什么反应,一点变化都没有.
      

  6.   

    对了,顺便问一下,程序处理完成后需要不需要对CArray数组进行释放?如果要该怎么做?同时也感谢上面热心回答的每位兄弟!
      

  7.   

    呵呵,第三个问题:如何添加ListBox的单击消息???我使用SelChange函数无法实现,在点击不同的行的时候没有反应,是不是我理解错了???如何及时显示我选择的每一行?谢谢
      

  8.   

    CArray一次申请多点,会自动释放的