㈠ 如何获得MFC列表框中选中的数据
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用法:
㈡ mfc如何将编辑框的内容读取到列表控件中
1、为界面添加一个List Control控件。x0dx0a2、更改这个控件的view属性为Reportx0dx0a3、为这个控件添加一个控制型变量 假设饥败漏为m_ctlList;x0dx0a4、在界面的初始化函数OnInitDialog()函数中初始化这个控件主要是插入列表的头,主要调用x0dx0aint InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );这个函数。x0dx0a其中 nCol是列的索引,从0开始 ;lpszColumnHeading 列的名称 ;nFormat 文字的摆放方式;nWidth 宽的度度。x0dx0a如:x0dx0am_ctlList.InsertColumn(0,"姓名",LVCFMT_CENTER,60);//第一列,名称为姓名,文字居中显示,列的宽度为60像素x0dx0am_ctlList.InsertColumn(1,"性别",LVCFMT_CENTER,60);//第二列,名称为性别,文字居中显示,列的宽度为60像素x0dx0a....x0dx0a5.在界面中添加一个“添加按钮”,在烂烂按钮的响应函数中向列表控件m_ctlList插入数据主要代码如下。x0dx0a UpdateData(TRUE);//将界面的数据更新到对应的变量枯御中x0dx0aint count=m_ctlList.GetItemCount();//获取当前存在的数据总量x0dx0am_ctlList.InsertItem(count,"张三");//插入一行x0dx0am_ctlList.SetItemText(count,1,"男");//改变列2的显示文字
㈢ 怎样调用mfc中列表框里的数据
你的标准参数表在哪儿?
如果你的标准参数在数据库中的话
你就要定义一个cdatabase类的对象,然后用他来打开数据库。然后定义一个crecordset类的对象,用它来进行对数据库的select查询(这个查询的结果最后会返回至蠢和对象中)。然后你在把这个对象里的内容和对话框中每个文本框内的数据进行比较就可以了啊。
具体可能比较复杂,但是思路皮谨还是比带握盯较简单的,如果有不会的
可以继续追问
㈣ MFC中的listctrl里面,点击列表内的任一项可以提取内容并用combobox显示
添加一备闷个单击列表的消物滚启息函数
ON_NOTIFY(NM_CLICK, IDC_MATRIX_LIST, &CXXDlg::OnNMClickList)
OnNMClickList()
{
UpdateData();
nListItem = -1;
LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
if(lpNMItemActivate != NULL)
{
if(lpNMItemActivate->iItem!=-1)
nListItem = lpNMItemActivate->iItem;
else
return;
}
STUDENT *stu= (STUDENT *)m_List.GetItemData(nListItem);
if(NULL==stu)
return;
else
commbox.setitemitem(commbox.addstring(stu.tel),n);
答题就是,有一个单击响应函数,将单击的行的罩如信息取出来,读取相应的数据add到commbox中
㈤ MFC中 如何获取列表框里,选中项的text 是一个一个那种
响应单击事件。可以类向导直接添加方便快捷下面是手动添加的代码
//添加函数声悔或棚明
afx_msgvoidOnClick(NMHDR*pNMHDR,LRESULT*pResult);
//添加消息映射
ON_NOTIFY_REFLECT(NM_CLICK,OnClick)
voidCDlgXXX::OnClick(NMHDR*pNMHDR,LRESULT*pResult)
{
NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;
for(inti=0;i<m_list.GetItemCount();i++)
{
if(m_list.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
TCHARszBuf1[30]={0};
LVITEMlvi;
lvi.iItem=i;//行
lvi.iSubItem=0;//列
团宏lvi.mask=LVIF_TEXT;
lvi.pszText=szBuf1;
lvi.cchTextMax=30;
m_list.GetItem(&lvi);
CStringstr碧则=szBuf1;
}
}
*pResult=0;
}
㈥ MFC中列表控件怎么实现查找
伪代码
for 0 to list.getitemcount
list.getitemtext(...)
getwindowtext(文本框控件ID)
如果棚毕扒上面链昌两个得到数谨的字符串相等 break
㈦ 如何得到MFC中的列表控件中某一格内的数据
首先你要知道mfc列表控件的工作原理。跟禅喊VB一样,列表框里从上到下是一个数组,如果共10项的话,第一项(列表框最上面那一项)为0,第二项为1,然后2,3,4,.....到9.你要确定宽山你所要得到的那格数据的项数。
比如定义一个列表控件,里面内容如下:
【雪山飞狐
连城诀
天龙八部
射雕英雄传】
你要得到天龙八部这个数据,首先它在列表框从上到下第三个位置,项数是2,
然后在classwizard中为列表控件添加变量m_strlist;
接着在你的程序里定义一个CString 类型变贺巧野量 CString temp;
然后写 m_strlist.GetText(2,temp);
这样就把天龙八部放到了temp 变量里
㈧ MFC列表控件如何实现获取某一列的全部数据(行数不确定)
你可以磨颂用myList.etItemCount获雹芹取列表中的行数,再循环取出数据,转换成数字相加不就源游毕行了。
㈨ 在C++的面向对话框的MFC里,列表框要怎么输出数据啊
1
自己先定义一个慧没容器来装载要输出的数据。2
用GetItemText()或GetItemData()这两个函数可以得到每一个列表的数据,返回值分别是一个CString类型和一个DWORD类型,具体用法你可以直接MSDN查一下就行了。(PS:用GetCount()可以颤旦得到当前列表中列表项的总数,遍历的时候可以用茄碧扰它)