如何取得MultiSelect ListBox里同时多选的选项内容?

sun49 2004-12-13 01:32:57
在列表框里同时选中了几行,有什么方法可以读取全部被选中的行的内容(即)?

好像可以定义一个CArray类的数组来读取,然后使用Listbox的GetSelItems和CArray的GetData来得到所需要的数据,到这里我就不知道如何从数组中取出数据了.

另外,如何让Listbox动态的显示或隐藏?我只知道EnableWindow是用来控制可用与否,不知道哪个是用来设置隐藏的.

谢谢知道方法的高手说明的详细点,我是VC初学者,最好能写出代码以举例说明,谢谢!
...全文
364 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2004-12-13
  • 打赏
  • 举报
回复
GetText获得行的内容
oyljerry 2004-12-13
  • 打赏
  • 举报
回复
CArray一次申请多点,会自动释放的
sun49 2004-12-13
  • 打赏
  • 举报
回复
呵呵,第三个问题:如何添加ListBox的单击消息???我使用SelChange函数无法实现,在点击不同的行的时候没有反应,是不是我理解错了???如何及时显示我选择的每一行?谢谢
sun49 2004-12-13
  • 打赏
  • 举报
回复
对了,顺便问一下,程序处理完成后需要不需要对CArray数组进行释放?如果要该怎么做?

同时也感谢上面热心回答的每位兄弟!
sun49 2004-12-13
  • 打赏
  • 举报
回复
谢谢 laiyiling(陌生人_潜心钻研MS技术) ,多选的问题已经解决.

另外那个还是不能动态的显示或隐藏,我是想根据不同的选择来隐藏或显示两个Listbox.改成EnableWindow(SW_HIDE)或EnableWindow(SW_SHOW)都没什么反应,一点变化都没有.
DoubleJiang 2004-12-13
  • 打赏
  • 举报
回复
LPINT pitems = new INT(list.GetSelCount() );
GetSelItems(list.GetSelCount(), pitems);
Kudeet 2004-12-13
  • 打赏
  • 举报
回复
基本上是这样:
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
}
Kudeet 2004-12-13
  • 打赏
  • 举报
回复
不知道哪个是用来设置隐藏的.
------
m_list.ShowWindow(SW_HIDE);//隐藏控件
Kudeet 2004-12-13
  • 打赏
  • 举报
回复
Copy from MSDN

CArray<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);
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧