CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请教一个列表视图的问题

楼主fsfsfs()2004-12-02 21:53:37 在 VC/MFC / 基础类 提问

我在列表视图的OnInitialUpdate()函数中,对列表视图做了如下初始化工作:  
                    ASSERT(GetStyle()   &   LVS_REPORT);  
                /////设置首列  
  GetListCtrl().InsertColumn(0,_T("name"),LVCFMT_LEFT);  
                ////设置第二列  
  LVCOLUMN   col;  
  col.mask   =   LVCF_FMT   |   LVCF_TEXT;  
                    col.pszText   =   _T("sex");  
                    col.fmt   =   LVCFMT_LEFT;  
                    GetListCtrl().InsertColumn(1,   &col);  
              ////设置三列  
  col.pszText   =   _T("age");  
                    GetListCtrl().InsertColumn(2,   &col);  
   
  GetListCtrl().SetColumnWidth(0,   LVSCW_AUTOSIZE_USEHEADER);  
                    GetListCtrl().SetColumnWidth(1,   LVSCW_AUTOSIZE_USEHEADER);  
  GetListCtrl().SetColumnWidth(2,   LVSCW_AUTOSIZE_USEHEADER);  
   
  我列表视的一个成员函数中,想要重新设置列表视的列,如下:  
                     
  for(int   i   =   0;i<3;i++)  
  {  
  GetListCtrl().DeleteColumn(0);  
  }  
   
  GetListCtrl().InsertColumn(0,_T("big),LVCFMT_LEFT);  
   
  LVCOLUMN   col;  
  col.mask   =   LVCF_FMT   |   LVCF_TEXT;  
                    col.pszText   =   _T("middle");  
                    col.fmt   =   LVCFMT_LEFT;  
                    GetListCtrl().InsertColumn(1,   &col);  
           
   
  col.pszText   =   _T("small");  
                    GetListCtrl().InsertColumn(2,   &col);  
   
  GetListCtrl().SetColumnWidth(0,   LVSCW_AUTOSIZE_USEHEADER);  
                    GetListCtrl().SetColumnWidth(1,   LVSCW_AUTOSIZE_USEHEADER);  
  GetListCtrl().SetColumnWidth(2,   LVSCW_AUTOSIZE_USEHEADER);  
   
  可是不知道为什么,列表视图显示的始终是初始时的样子。请教列位高手,这是为什么呢?如何重新设置列表视图的列呢?谢谢!!  
   
  问题点数:100、回复次数:3Top

1 楼fengqinggao(风清高)回复于 2004-12-02 23:08:11 得分 100

首先提一个建议,在你的ClistView类中添加一个CListCtrl类的指针,然后在OnInitialUpdate()中用GetListCtrl()对其进行赋值,这样以后使用起来就方便了,而没有必要每次都重新获取,编程麻烦而且影响性能。  
   
  其次,删除所有内容,也没有必要用循环,直接用DeleteAllItems()函数就可以了;  
   
  再次,我用InsertItem()一直没有问题,你不妨用这个试一试,呵呵Top

2 楼zhaolaoxin()回复于 2004-12-03 00:22:17 得分 0

GetListCtrl().DeleteColumn(0);写错了,应该是iTop

3 楼fengqinggao(风清高)回复于 2004-12-03 00:45:34 得分 0

楼上的,我一开始也是这么认为,后来一想,删除第0列后原来的第1列就变成第0列,所以觉得这个语句没错,不过搞不清楚为什么没有没有效果,没有尝试过Top

相关问题

  • 列表视图控件的用法
  • 列表视图的编辑问题
  • 请问:关于列表视图控件(在线等待)
  • 查了好久,关于列表视图控件的问题
  • 怎么才能让CListView列表视图不自动排列
  • 关于列表视图/控件和树视图/控件的问题?请高手指教.
  • 为什么在Vc.net下列表视图控件和树视图控件显法的全是乱码?
  • 简单问题:列表视图report样式,怎么知道有多少列?
  • 一个如何实现列表视图的类似Excel功能的问题
  • 一个如何实现列表视图的类似Excel功能的问题

关键词

  • 视图
  • getlistctrl
  • 列表
  • lvscw
  • useheader
  • setcolumnwidth
  • insertcolumn
  • autosize
  • col
  • 设置

得分解答快速导航

  • 帖主:fsfsfs
  • fengqinggao

相关链接

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

广告也精彩

反馈

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