第二步  创建第一行

1、  在上一节中我们创建了一个列,那我们可以按照同样的方法多创建几个列。在

m_ListCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 90);

代码后边添入下列三行代码:

m_ListCtrl.InsertColumn(1,_T("性别"),LVCFMT_LEFT,40);

m_ListCtrl.InsertColumn(2,_T("联系方式"),LVCFMT_LEFT,160);

m_ListCtrl.InsertColumn(3,_T("备注"),LVCFMT_LEFT,180);

大家可以发现,只有第一个参数和最后一个参数不同,这两个参数的作用在上一节我们也介绍过了。第一个参数是新建列的索引值,是从0开始的,也就是说第一列的索引值是0,第二列的索引值是1,第三列的索引值是2,以此类推,是不是很像数组的下表啊?

2、  大家可以运行下看看结果,会出现4个列,列名分别为:姓名,性别,联系方式,备注。

3、  既然我们已经创建好了列,那我们来创建行吧。

4、  首先要知道List Control在显示为Report样式时,主项为第一项,后面紧跟着的为子项。主项和子项的数据写入不同,这将在后面提到。所以说,在我们的例子当中姓名就是主项了,而其余的项就都是子项了。

5、  在我们刚才添加的代码后边继续添加代码:

m_ListCtrl.InsertItem(0,_T("王二小"));

这里我们来看下这个函数的定义:

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
              )

返回值:
如果成功,则返回新建列的索引值,否则为-1。

参数:

pItem

指向指定项属性LVITEM结构的指针,如联机文档“平台SDK”中所述。

nItem

被插入项的索引值。

lpszItem

包含项标签的字符串的地址,或当项为回调项时,该变量为LPSTR_TEXT CALLBACK。要了解更多有关回调项的信息,请参阅CListCtrl::GetCall backMask.

nImage

项图象的索引值,或当项为回调项时,该变量为I_IMAGECALLBACK。要了解更多有关回调项的信息,请参阅CListCtrl::GetCallbackMask

nMask

参数nMask指定了哪个项属性作为参数传递是有效的。它可以是联机文档“平台SDK” 中LVITEM结构所描述的一个或多个掩码值。有效的数据能够通过位与运算来组合。

nState

指示项的状态、状态图象及轮廓图象。请参阅联机文档“平台SDK”中的LVITEM来获取更多信息,并参阅有效标志列表中的列表视图项状态。

nStateMask

指示状态成员中的哪一位将被获取或修改。请参阅联机文档“平台SDK”中的LVITEM来获取更多信息。

nImage

图象列表之内项的图象的索引。

lParam

与项相关联的应用指定的32位值。如果该参数被指定,那么必须设置nMask的属性为LVIF_PARAM。

说明:向列表视图控件中新插入一项。

很显然,我们采用的是第二个函数,具有三个参数的函数。

6、  我们这行代码的作用就是,插入主项:王二小,即在第一行第一列姓名中添加了王二小。

7、  那我们要如何插入子项呢?我们继续添加代码如下:

m_ListCtrl.SetItemText(0,1,_T("男"));

我们先来看下这个函数的定义:

BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText)
返回值:如果成功,则返回非零值,否则为0。
参数:

nItem

要设定文本项的索引值。

nSubItem

子项的索引,若为零,则设置项标签。

lpszText

指向包含新项文本字符串的指针。

说明:改变列表视图项或子项的文本。

这个就很好理解了,参数很少,这个就是为了添加子项。由于是子项,需要确定添加的位置,所以肯定需要二维的坐标来确定自己的位置,所以需要两个索引。类似于二维数组的下标。在我们的函数参数中,0,1,表示第1行第2列,而男就是要添加的内容了。

8、  我们按照这个方法继续添加代码如下:

m_ListCtrl.SetItemText(0,2,_T("15888888888"));

m_ListCtrl.SetItemText(0,3,_T("儿童团"));

9、  调试程序,我们将可以看到具有完整的一行数据的结果。如下图:

10、同样,我们可以采取同样的方法,创建添加多行数据。

转载于:https://www.cnblogs.com/ainima/archive/2010/03/17/6332037.html

一步一步学List Control控件的用法(第二步)----创建第一行相关推荐

  1. 验证控件的使用:一步一步学注册——RangeValidator控件

    ™RangeValidator检查指定范围 上一篇博客: 验证控件的使用:一步一步学注册--CompareValidator控件 上篇博客说道要继续学习检查指定范围的验证控件RangeValidato ...

  2. MFC中使用TAB Control控件

    2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...

  3. C++ MFC picture control控件按比例显示任意图片文件(jpg、bmp等)

    前段时间做大一专业实训,用MFC做一个图片查看类程序,对于从来没有学过C++的我们来说显示一张图片就是一件很难的事情了,作为小组里唯一一个MFC设计者,我从网上有很多关于MFC图片控件显示的文章,但大 ...

  4. MFC-Tab Control控件使用

    在MFC当中使用Tab Control控件切换不同的界面,使用起来会复杂一些,至少是比Qt中的Tab Widget复杂得多.我接下来会以一个MFC对话框应用程序为例子,说明Tab Control控件的 ...

  5. 在VC++中使用Tab Control控件

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

  6. Tab Control控件的详细使用

    1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置I ...

  7. 【转】VC2008在工具栏Toolbar里添加XP风格spin box control控件

    Spin box control本是用于对话框中的控件.但有时需要将它放到工具栏上.VC++ 2008里实现如下: 一.在工具栏上新增一个工具按钮项,资源命名为ID_TOOL_EDIT_TIME.再增 ...

  8. VC++ Tab Control控件的使用

    1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置I ...

  9. 【MFC】动态加载Picture Control控件中的图片

    [MFC]动态加载Picture Control控件中的图片 前言 方法1:CBrush 方法2:SetBitmap 参考链接 方法3:重写MyPictureControl 前言 在MFC窗体中,我们 ...

最新文章

  1. curl进行post请求的demo
  2. 一些经典的常用ASP代码[经典简单] (2)
  3. 在windows上实现多个java jdk的共存解决办法
  4. 火狐渗透测试浏览器_微软、火狐浏览器、Opera浏览器等主流平台纷纷布局IPFS:大势所趋...
  5. flink的CEP调研与使用
  6. jmu-枚举WeekDay
  7. CF刷刷水题找自信 2
  8. 物联网技术周报第 109 期: 从设计理念解读实时操作系统 RT-Thread
  9. style, currentStyle, getComputedStyle的区别
  10. 创建类(点击获得位置信息)—ArcGIS API for JavaScript
  11. 应云而生,原力觉醒——解读云原生基础设施 | 凌云时刻
  12. 麒麟官方应用商店下载地址
  13. NVIDIA详细解读游戏中DX9与DX11差别
  14. 【初赛】计算机操作系统
  15. 接收微信公众号的事件推送并且回复消息
  16. 新绝代双骄三常见问题解答(不同于网上那片)
  17. LS1046A QSPI FLASH memory map setting
  18. 12v电源正负极区分_12V或者24V变压器输出端的电源线怎样区分正负极?
  19. linux清空log文件
  20. python elif格式_python中elif 结构语句怎么判断?

热门文章

  1. SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用域(Scope)和生命周期
  2. Spring MVC 向页面传值-Map、Model和ModelMap
  3. 转载:2016前端开发技术巡礼
  4. 使用tomcat自带的连接池,报错
  5. 【多线程】Java线程面试题 Top 50(转载)
  6. WinObjC?这是什么鬼?
  7. 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式
  8. Node.js做的代理转发服务器
  9. mark一个subList的坑
  10. 《Access 2007开发指南(修订版)》一一1.3 具有缩放能力的Access