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

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

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

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

谢谢知道方法的高手说明的详细点,我是VC初学者,最好能写出代码以举例说明,谢谢!
...全文
255 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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);
}
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2004-12-13 01:32
社区公告
暂无公告