CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

CListCtrl添加Item的怪异现象

楼主wuzhibiao(流氓兔儿)2002-04-08 04:11:10 在 VC/MFC / 基础类 提问

使用insertitem,如果按照0,1,2,3,4......的顺序添加,前面添加的项目就看不到显示的内容了。  
  要是一直都往index=0的地方添加,前面添加的内容会被排在下一行。  
  但是我想用上面的那种方法  
  以下是我的程序:  
  void   CListReportView::OnDataAdd()    
  {  
  //   TODO:   Add   your   command   handler   code   here  
  CAddDlg   addDialog;  
  if(addDialog.DoModal()==IDOK)  
  {  
  if(addDialog.m_strName=="")  
  {  
  AfxMessageBox("请输入名字");  
  return;  
  }  
  if(addDialog.m_strFAX=="")  
  {  
  AfxMessageBox("请输入传真号码");  
  return;  
  }  
   
  GetListCtrl().InsertItem(nIndex,"nIndex",1);  
  GetListCtrl().SetItemText(nIndex,1,addDialog.m_strName);  
  GetListCtrl().SetItemText(nIndex,2,addDialog.m_strFAX);  
  GetListCtrl().SetItemText(nIndex,3,addDialog.m_strNote);  
  GetListCtrl().Update(nIndex++);  
  }  
  }  
   
  前面添加的item的内容就是空白的了,奇怪了 问题点数:100、回复次数:14Top

1 楼feijunjun(军仔)回复于 2002-04-08 08:29:37 得分 5

Update   注释掉看看?Top

2 楼Tasehouny(阿甘)回复于 2002-04-08 08:49:59 得分 10

nIndex   =   GetListCtrl().GetItemCount()-1;  
  GetListCtrl().InsertItem(nIndex,"nIndex",1);  
  GetListCtrl().SetItemText(nIndex,1,addDialog.m_strName);  
  GetListCtrl().SetItemText(nIndex,2,addDialog.m_strFAX);  
  GetListCtrl().SetItemText(nIndex,3,addDialog.m_strNote);  
   
  这样就不会出错了  
  Top

3 楼stavck(在河之洲)回复于 2002-04-08 08:54:09 得分 5

你的nIndex可能是无效的,开始时应付-1;Top

4 楼eastrock(东方之石)回复于 2002-04-08 09:07:35 得分 5

nIndex的值是多少,你没有说明Top

5 楼lishush(☆↑苯鸟先飞↑☆)回复于 2002-04-08 09:09:00 得分 5

GetListCtrl().InsertItem(nIndex,"nIndex",1);     语句返回的是当前插入的索引号,你要注意这个!Top

6 楼guanjinke(纶巾客 blog:www.guanjinke.com)回复于 2002-04-08 09:10:33 得分 20

用这种方式不行吗?  
  int   index;//最初的索引初始化  
   
  LVITEM   item;  
  item.iItem=index;  
  item.iItem=1;  
  item.mask=LVIF_TEXT;  
  item.pszText=addDialog.m_strName;  
  GetListCtrl().InsertItem(&item);  
   
  item.iItem=2;  
  item.pszText=addDialog.m_strFAX;  
  GetListCtrl().SetItem(&item);  
   
  item.iItem=3;  
  item.pszText=addDialog.m_strNote;  
  GetListCtrl().SetItem(&item);  
   
  index++;//下一条记录的索引  
   
   
  Top

7 楼wuzhibiao(流氓兔儿)回复于 2002-04-08 12:45:25 得分 0

nIndex我赋的初值是0。Top

8 楼wuzhibiao(流氓兔儿)回复于 2002-04-08 15:14:41 得分 0

还是不行啊,我试了你们的方法Top

9 楼EetyChen(三刀主)回复于 2002-04-08 15:47:45 得分 25

MSDN上有个ctrlext.cpp   .h文件,里面有个CListCtrlEx类,用它来对LISTCTRL进行增删都很方便,试试去吧  
  要找不着的话留下妹儿我发给你Top

10 楼wuzhibiao(流氓兔儿)回复于 2002-04-08 17:21:36 得分 0

三刀主  
  wuzhibiao@21cn.com  
  你发给我吧,多谢你了Top

11 楼wuzhibiao(流氓兔儿)回复于 2002-04-08 17:23:45 得分 0

EetyChen(三刀主)    
  wuzhibiao@21cn.com  
  多谢你了Top

12 楼EetyChen(三刀主)回复于 2002-04-09 14:25:52 得分 0

改得怎样?  
  还是没收到?Top

13 楼cococut(小鱼的天空)回复于 2002-04-09 14:45:18 得分 25

试试:  
   
  LVITEM   lvItemlocal;  
  lvItemlocal.mask   =   LVIF_TEXT   |   LVIF_IMAGE   |   LVIF_STATE;  
  lvItemlocal.state   =   0;            
  lvItemlocal.stateMask   =   0;    
  lvItemlocal.iImage   =   0;  
  lvItemlocal.iSubItem   =   0;  
  lvItemlocal.iItem   =   0;  
  lvItemlocal.pszText   =   (LPSTR)(LPCTSTR)("ddddd");  
  GetListCtrl().InsertItem(&lvItemlocal);  
  Top

14 楼wuzhibiao(流氓兔儿)回复于 2002-04-09 20:55:31 得分 0

问题解决了,是我的错,没有把设置Listctrl的属性的程序贴出来,其实关键不在于我怎么添加,而是我设置了升序排列,而我的item中的第一个subitem又是给的相同的值"nIndex"所一就这样了  
  不过还是感谢大家的回复,多学了几种方法。  
  再次感谢Top

相关问题

  • 如何给CListCtrl添加Item?
  • asp添加数据库,怪异现象
  • 如何让CListCtrl在添加完n个Item后再刷新?
  • CListCtrl添加大量数据...
  • 怪异啊,为何不能添加记录
  • 如何将CListCtrl 添加到View 中去
  • 为什么列表CListCtrl中只能添加行,不能添加列?晕
  • >>>>>怪异<<<<<
  • 在CListCtrl中,如何手动添加删除LVS_EDITLABELS属性
  • CListCtrl添加一列(InsertColumn())为什么老是有异常?

关键词

  • 内容
  • adddialog
  • getlistctrl
  • lvitemlocal
  • nindex
  • 添加
  • strfax
  • setitemtext
  • insertitem
  • strnote

得分解答快速导航

  • 帖主:wuzhibiao
  • feijunjun
  • Tasehouny
  • stavck
  • eastrock
  • lishush
  • guanjinke
  • EetyChen
  • cococut

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo