VC6.0中 如何将 LIST control中的信息读取到文本编辑框中

最好能给我一个范例程序... 最好能给我一个范例程序 展开
 我来答
山水阿锐
推荐于2016-06-06 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,新建一个基于对话框的工程,命名为LCDemo,然后在对话框中按照图一所示添加一个List Control和两个Button,设置List Control样式为Report。为List Control关联一个变量m_listCtrl,并通过ClassWizard为List Control和Button添加Click消息的响应函数。
先在OnInitDialog()函数中对控件初始化,就是为List Control添加列,并插入10行列表项目,详细内容请参考附带的源代码,我只想列出主要的代码片断。
为对话框类定义一个整型变量IndexInFieldList,用它来存储项目索引,把下面代码粘贴到CLCDemoDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 函数中。
01.void CLCDemoDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
02.{
03.POSITION pos;
04.pos = m_listCtrl.GetFirstSelectedItemPosition();
05.
06.// 得到项目索引
07.IndexInFieldList = m_listCtrl.GetNextSelectedItem(pos);
08.
09.*pResult = 0;
10.}
在向上移动操作按钮的WM_CLICK消息响应函数中写入下面代码。
view sourceprint?
01.void CLCDemoDlg::OnButtonUp()
02.{
03.m_listCtrl.SetFocus();
04.
05.if (IndexInFieldList == -1)
06.return;
07.
08.// 判断所选项是否位于行首
09.if (IndexInFieldList == 0)
10.{
11.AfxMessageBox("已经位于第一行!");
12.return;
13.}
14.
15.// 提取所选列表项各列类容
16.CString tempField1, tempField2, tempField3;
17.tempField1 = m_listCtrl.GetItemText(IndexInFieldList, 0);
18.tempField2 = m_listCtrl.GetItemText(IndexInFieldList, 1);
19.tempField3 = m_listCtrl.GetItemText(IndexInFieldList, 2);
20.
21.// 删除所选列表项
22.m_listCtrl.DeleteItem(IndexInFieldList);
23.
24.// 在IndexInFieldList-1位置处插入上面所删列表项的各列类容
25.int tempItem;
26.tempItem = m_listCtrl.InsertItem(IndexInFieldList-1, _T(tempField1));
27.m_listCtrl.SetItemText(tempItem, 1, _T(tempField2));
28.m_listCtrl.SetItemText(tempItem, 2, _T(tempField3));
29.IndexInFieldList--;
30.
31.// 使得IndexInFieldList-1位置处项目高亮显示并获得焦点
32.UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
33.m_listCtrl.SetItemState(IndexInFieldList, flag, flag);
34.}
向下移动操作按钮的响应函数代码与上面的代码类似,请参考本文所附源代码,因为代码有相关中文注释,这里我就不再赘述了。
运行情况
具体的运行效果请编译好附带源代码后执行。
道冲渊风
2015-04-01 · 超过18用户采纳过TA的回答
知道答主
回答量:68
采纳率:100%
帮助的人:23.1万
展开全部
为LIST control的通知消息NM_CLICK添加消息处理函数,在消息响应函数的里添加代码:
*pResult = 0;
CString strLangName; // 定义一个字符串用于存放文本
NMLISTVIEW *pNMListView = (NMLISTVIEW*)pNMHDR;
if (-1 != pNMListView->iItem) // 如果iItem不是-1,就说明有列表项被选择
{
strLangName = m_programLangList.GetItemText(pNMListView->iItem, 0); // 获取被选择列表项第一个子项的文本
SetDlgItemText(IDC_EDIT, strLangName); // 将文本显示到编辑框中 ,IDC_EDIT为编辑框的ID
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
问额外我而去
2015-04-01 · TA获得超过838个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:465万
展开全部
先 listctrl.GetItemText

然后 edit.SetWindowText
追问
能不能帮我写一个小的源程序呀
追答
我没有安装vs
你按照我的步骤
1。建立多话框工程
2。放2个控件
3。绑定控件变量
4。放个按钮
5。按我说的调用
有问题追问我
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式