中易网

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

答案:3  悬赏:30  
解决时间 2021-02-27 17:44
VC6.0中 如何将 LIST control中的信息读取到文本编辑框中
最佳答案
您好,新建一个基于对话框的工程,命名为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.}
向下移动操作按钮的响应函数代码与上面的代码类似,请参考本文所附源代码,因为代码有相关中文注释,这里我就不再赘述了。
运行情况
具体的运行效果请编译好附带源代码后执行。
全部回答
为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
}
先 listctrl.GetItemText
然后 edit.SetWindowText追问能不能帮我写一个小的源程序呀追答我没有安装vs
你按照我的步骤
1。建立多话框工程
2。放2个控件
3。绑定控件变量
4。放个按钮
5。按我说的调用
有问题追问我
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
嘉祥九思跟七中嘉祥外国语学校是什么关系?
聚富全不锈钢驻堆沟办事处在哪里啊,我有事要
如何打开.WZX文件
我用QQ聊天时,语音怎么没声了,前几天还能用
荣盛花园地址在哪,我要去那里办事
如图所示l1和l3是什么关系
求搭配主板
新泰市明珠小区怎么去啊,有知道地址的么
青鱼怎么做最好吃
鲁迅赴日学医详细资料
ゴレンシ的罗马音
华林证券江门港口路营业部在哪里啊,我有事要
怎么样让大母鹅的声音变小
佳人摄影在什么地方啊,我要过去处理事情
一入厅堂门口正中放台彩电可以吗
推荐资讯
然今卒困于此 卒?
这种窗户如何装窗帘,一面全是窗户,而另一面
仙茅泡红茶有什么功效
请给我来几个ac娘和bilibili娘在一起的图片,
考会计证推荐看哪个出版社发行的书?
卓越亚马逊有黑名单吗?为什么我不能订货了?
风尘吸张怎么读
冰箱右边很烫是什么原因
侠盗猎车手罪恶都市安卓版的下载地址 需要数
加油票到期当天能用吗
天能电池(昆明办事处)在哪里啊,我有事要去这
造成温室效应的主要原因和缓解全球温室效应危
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?