CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

指点一个简单的问题

楼主pyhjy()2001-03-28 17:06:00 在 VC/MFC / 基础类 提问

我使用的CListCtrl控件作一列表;  
  用report方式;  
  用下面的方法添加多列  
  Column.mask=LVCF_FMT   |   LVCF_WIDTH   |LVCF_TEXT|LVCF_SUBITEM   ;  
  Column.fmt=LVCFMT_LEFT;  
  Column.cx=120;  
  Column.iSubItem=0;  
  Column.pszText="编         号";  
  m_ListCtrl.InsertColumn(0,&Column);  
  Column.iSubItem=1;  
  Column.pszText="名                 称";  
  m_ListCtrl.InsertColumn(1,&Column);  
  但用  
  LV_ITEM                   lvitem;  
  lvitem.item=0;  
  lvitem.pszText="asdfasfasf";  
  m_ListCtrl.InsertItem(&lvitem);    
  添加子项;  
  程序运行无报错,但不显示添加文本内容。  
   
  为什么???  
  问题点数:80、回复次数:6Top

1 楼Fesd(傻蛋)回复于 2001-03-28 17:47:00 得分 10

lvitem.mask   =   LVIF_TEXT;  
  lvitem.pszText="asdfasfasf";  
  lvitem.cchTextMax   =   _tcslen(lvitem.pszText);  
  m_ListCtrl.InsertItem(....);Top

2 楼pyhjy()回复于 2001-03-28 17:52:00 得分 0

好像还不行Top

3 楼panda_w(好想睡啊!)回复于 2001-03-28 18:12:00 得分 10

我这里没有csdn,没有VC,所以无法调试,不过,你可以看看  
  http://www.vckbase.com/document/listview/index.html的几篇文档,关于怎么编辑子项的Top

4 楼yf_000(林临邻)回复于 2001-03-28 18:47:00 得分 10

lvitem.item=0;     应该是   lvitem.iItem=0;     (可参照MSDN中LV_ITEM的结构)  
   
  也可如下定义:  
  int   nItem=m_ListCtrl.InsertItem(0,"aaa");  
  m_ListCtrl.SetItemText(nItem,1,"bbb");  
  m_ListCtrl.SetItemText(nItem,2,"ccc");  
  m_ListCtrl.SetItemText(nItem,3,"ddd");Top

5 楼Tasehouny(阿甘)回复于 2001-03-28 19:29:00 得分 20

m_cListCtrl.InsertColumn(0,"第一列");//还有几个参数记不得了,可以设置对齐方式和列宽  
  m_cListCtrl.InsertColumn(1,"第二列");  
  m_cListCtrl.InsertColumn(2,"第三列");  
   
  int   nItem=m_cListCtrl.InsertItem(0,"内容1");  
  m_cListCtrl.SetItemText(nItem,1,"内容2");  
  m_cListCtrl.SetItemText(nItem,2,"内容3");  
   
   
    Top

6 楼joke100(咱们去SLEEP吧...)回复于 2001-03-28 20:40:00 得分 30

原因是INSERTITEM还不够,因为LV_ITEM中的pszText成员仅是项文字的指针,并不负责为各列分派,即使你只有一列...  
   
  解决:  
  使用  
  BOOL   CListCtrl::SetItemText(   int   nItem,   int   nSubItem,   LPTSTR   lpszText   );  
  显式的为各列指定显示字符串  
   
  在你的程序后面添加下面的代码,考虑通用的情况:  
  for   (int   nItemIndex   =   0;   nItemIndex   <   项数;   nItemIndex++)  
  {  
        for   (int   nIndex   =   0;   i   <   列数;   i++)  
              m_cListCtrl.SetItemText(nItemIndex,   nIndex,   "我的CAPTION");  
  }  
  Top

相关问题

  • 简单问题,请指点!
  • 简单的语句,请指点!谢谢!
  • 简单错误?请指点!谢谢!!
  • 简单析构函数,请指点
  • 简单问题,请高手指点!
  • 急!很简单!请高手指点
  • 简单的open()问题,请指点
  • 简单问题,高手指点一下!
  • 一简单问题,请高手指点
  • 简单问题,指点迷经!!!!!

关键词

  • 内容
  • lvitem
  • nitem
  • listctrl
  • clistctrl
  • setitemtext
  • psztext
  • insertcolumn
  • lvcf
  • insertitem

得分解答快速导航

  • 帖主:pyhjy
  • Fesd
  • panda_w
  • yf_000
  • Tasehouny
  • joke100

相关链接

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

广告也精彩

反馈

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