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

第二步  创建第一行

 

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、同样,我们可以采取同样的方法,创建添加多行数据。

时间: 2024-09-22 14:52:28

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

一步一步学Edit Control控件的用法

Edit Control控件最常见的用法,一般有有以下几种: 1.  显示默认的字符串: 2.  接受用户输入的字符串. 3.  作为密码框接受用户输入的字符串.   Edit Control对应的MFC类为CEdit类.而CEdit是继承自CWnd类的,所以也继承了来自CWnd类的GetWindowText()和SetWindowText().其实从这两个函数的名字大家都可以看出来是做什么用的了. 我们来一步一步实现Edit Control控件的这三种最常见的用法. 首先,先建立一个项目,在V

一步一步学List Control控件的用法(第一步)----创建第一列

  第一步:创建一个列 注:开发平台为VS2008.NET.   1.  创建一个MFC应用程序,选择基于对话框的. 具体步骤如下:文件à新建à项目àVisual C++àMFCàMFC应用程序,在下方名称中输入你自己想要建立的项目名,此处为ListCtrl. 在MFC应用程序向导中选择引用程序类型,然后在窗口右边应用程序类型中选择基于对话框,然后选择完成. 2.  进入项目,可以直接看到建立好的一个对话框,将对话框中部的"TODO:在此放置对话框删除". 3.  从工具箱中拖一个Li

一步一步学List Control控件的用法(第三步)----设置风格

第三步  设置风格 1.  通过第一步和第二步,我们已经创建出了一个有一行并且有四列的内容的REPORT风格的List Control.可是,只是简单的方框中有一行数据而已,我们能不能让它们看起来更漂亮呢?或者我们能不能让它们可以被选取从而让我们可以做一些别的操作呢?当然可以,这一步我们就来看看简单的风格设置. 2.  要学习风格设置,我们首先来看一个函数:   CListCtrl::SetExtendedStyleDWORD SetExtendedStyle(DWORD dwNewStyle)

VC中Tab control控件的用法详细解析_C 语言

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl. 3. 在对话框的初始化函数OnInitDialog

mfc求助-我是新手,MFC里edit Control控件怎么用

问题描述 我是新手,MFC里edit Control控件怎么用 怎么用edit Control输出?网上查的没看懂,谁能帮忙详细讲一讲怎么用?最好能有实例讲一下,谢谢 解决方案 在vs左边展开文件视图,找到对话框,找到你的对话框 然后从工具箱中拖动一个编辑框到你的界面上 ctrl+c调出class wizard,映射一个cstring的成员变量给它. 然后在你的代码中直接用: 比如 updatedata(); cstring str = m_edit1; 解决方案二: MFC中VALUE和CON

mfc控件-Edit Control控件赋值报错

问题描述 Edit Control控件赋值报错 求问大神,我从数据库取了一条记录出来,想要赋值给EditControl,代码如下: if (pRst->rsEOF) { MessageBox(_T("没有数据")); } else; {MessageBox(_T("有数据")); CString m = (LPCTSTR)_bstr_t(pRst->GetCollect("Book_ID")); AfxMessageBox(m); m

步步学ACTIVEX网页控件开发

转载自IT168 [ http://www.it168.com/ ]   第1页:创建ActiveX控件   本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信. MyActiveX控件的效果图  简介   ActiveX是由Microsoft在90年代中期提出的一项技术.利用ActiveX技术,开发者可以创建像Java小程序a

VC中使用Tab Control控件切换窗体

1. 新建一个MFC工程,取名xyTabControl,选择Dialog based,然后Finish. 2. 删除对话 框上默认添加的三个控件.添加Tab Control控件并在Property属性中设置ID为IDC_TAB1,添加变量 m_tabctrl,类型为CTabCtrl. 3. 在对话框的初始化函数OnInitDialog里面添加如下代 码: m_tabctrl.InsertItem(0,"memo0"); //添加参数一选项卡 m_tabctrl.InsertItem(1

C++中MFC Tab Control控件的使用详解

  这篇文章主要介绍了C++中MFC Tab Control控件的使用详解的相关资料,需要的朋友可以参考下 1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添