CListCtrl控件的InsertItem和SetItemText和SetItem三个函数的区别

本人初次用CListCtrl控件的时候,对于 InsertItem和SetItemText两个函数的作用始终不是太懂,比如如果不先调用InsertItem这个函数,后面的SetItemText函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路. 
         InsertItem在MSDN中的函数原型如下
        int InsertItem( const LVITEM* pItem );
       int InsertItem( int nItem, LPCTSTR lpszItem );
       int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );
      int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam );
     一般我们用的比较多的时第2种和第三种,其中第三种时建立一个带有头标的项

     要调用第三个,可以先声明一个CImageList对象
m_ImageList.Create(16,16,true,2,2);
m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME));
m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
这样,控件中的每一行的开头就有一个应用程序图标
    

      现在转入正题,先介绍一下InsertItem个个参数的意义
     nItem:    控件中行的索引
     lpszItem : 控件头的名字
     .........................................................................................................................................................................................................
     SetItemText函数的原型
    BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
     ******************注意这个函数中的参数nItem就是INSERTITEM中的NITEM,
    也就是说InsertItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就又SETITEMTEXT来实现
    举例如下:

      CListCtrl m_listctrl;

     m_listctrl = new ClistCtrl();

     m_listctrl.Creae(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS
   ,bigRect,this,IDC_LIST1
     );
     
     m_listctrl.InsertItem(0,"01");//插入的只能是字符,如果是数字的话要转为字符,可以用itao()

     m_SetItemtext(0,1,"1");

     m_SetItemtext(0,2,"2");
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     至于要添多少多少个数据,就由你的控件由多少列了

     获得可以这样的道 int columns= m_listctr.GetHeaderCtrl()->GetItemCount();

     获得可以这样的道 int   rows= m_listctrl.GetItemCount();

 

 

SetItem 可修改ITEM的属性
SetItemText只能设定其中的字符

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值