如何获得MFC列表框中选中的数据

如题。用GetWindowText();获得不了。还有什么方法?列表就一行。... 如题。

用GetWindowText();
获得不了。 还有什么方法?
列表就一行。
展开
 我来答
pxdir20
2011-02-11 · TA获得超过877个赞
知道答主
回答量:194
采纳率:0%
帮助的人:170万
展开全部
listbox控件的一些操作
1. 属性列表:

SelectionMode 组件中条目的选择类型,即多选(Multiple)、单选(Single)

Rows 列表框中显示总共多少行

Selected 检测条目是否被选中

SelectedItem 返回的类型是ListItem,获得列表框中被选择的条目

Count 列表框中条目的总数

SelectedIndex 列表框中被选择项的索引值

Items 泛指列表框中的所有项,每一项的类型都是ListItem

2. 取列表框中被选中的值

ListBox.SelectedValue

3. 动态的添加列表框中的项:

ListBox.Items.Add("所要添加的项");

4. 移出指定项:

//首先判断列表框中的项是否大于0

If(ListBox.Items.Count > 0 )

{

//移出选择的项

ListBox.Items.Remove(ListBox.SelectedItem);

}

5. 清空所有项:

//首先判断列表框中的项是否大于0

If(ListBox.Items.Count > 0 )

{

//清空所有项

ListBox.Items.Clear();

}

6. 列表框可以一次选择多项:

只需设置列表框的属性 SelectionMode="Multiple",按Ctrl可以多选

7. 两个列表框联动,即两级联动菜单

//判断第一个列表框中被选中的值

switch(ListBox1.SelectValue)

{

//如果是"A",第二个列表框中就添加这些:

case "A"

ListBox2.Items.Clear();

ListBox2.Items.Add("A1");

ListBox2.Items.Add("A2");

ListBox2.Items.Add("A3");

//如果是"B",第二个列表框中就添加这些:

case "B"

ListBox2.Items.Clear();

ListBox2.Items.Add("B1");

ListBox2.Items.Add("B2");

ListBox2.Items.Add("B3");

}

8. 实现列表框中项的移位

即:向上移位、向下移位

具体的思路为:创建一个ListBox对象,并把要移位的项先暂放在这个对象中。

如果是向上移位,就是把当前选定项的的上一项的值赋给当前选定的项,然后

把刚才新加入的对象的值,再附给当前选定项的前一项。

具体代码为:

//定义一个变量,作移位用

index = -1;

//将当前条目的文本以及值都保存到一个临时变量里面

ListItem lt=new ListItem (ListBox.SelectedItem.Text,ListBox.SelectedValue);

//被选中的项的值等于上一条或下一条的值

ListBox.Items[ListBox.SelectedIndex].Text=ListBox.Items[ListBox.SelectedIndex + index].Text;

//被选中的项的值等于上一条或下一条的值

ListBox.Items[ListBox.SelectedIndex].Value=ListBox.Items[ListBox.SelectedIndex + index].Value;

//把被选中项的前一条或下一条的值用临时变量中的取代

ListBox.Items[ListBox.SelectedIndex].Test=lt.Test;

//把被选中项的前一条或下一条的值用临时变量中的取代

ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;

//把鼠标指针放到移动后的那项上

ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;

9. 移动指针到指定位置:

(1).移至首条

//将被选中项的索引设置为0就OK了

ListBox.SelectIndex=0;

(2).移至尾条

//将被选中项的索引设置为ListBox.Items.Count-1就OK了

ListBox.SelectIndex=ListBox.Items.Count-1;

(3).上一条

//用当前被选中的索引去减 1

ListBox.SelectIndex=ListBox.SelectIndex - 1;

(4).下一条

//用当前被选中的索引去加 1

ListBox.SelectIndex=ListBox.SelectIndex + 1;

listBox显示最下面的一行。listBox1.SelectedIndex = listBox1.Items.Count - 1;

listBox删除所选择的行 listBox1.Items.Remove(listBox1.SelectedItem);

combo box用法:
船家摆渡000
推荐于2016-07-02 · TA获得超过1.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:78%
帮助的人:1481万
展开全部
int Cur=m_ListGroup.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
//m_ListGroup 是CList,获得的是列表中选中的第几行
if (Cur<0)//如果是0行,退出
return;
CString strGroup=m_ListGroup.GetItemText(Cur,1);获得Cur行第2列的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆之刀人辞0V
推荐于2018-03-02 · TA获得超过331个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:69.6万
展开全部
int Cur=m_ListGroup.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
//m_ListGroup 是CList,获得的是列表中选中的第几行
if (Cur<0)//如果是0行,退出
return;
CString strGroup=m_ListGroup.GetItemText(Cur,1);获得Cur行第2列的内容

晕 列表就一行?用这个也可以啊~~
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式