女神异闻录4手机模拟器:VC++中 CListCtr::InsertItem的作用是什么?

来源:百度文库 编辑:高校问答 时间:2024/04/20 22:03:00
看下列代码
CListCtrl m_cList;
while(!rs.IsEOF()) // 对数据表中所有记录进行处理
{
m_cList.InsertItem(i, ""); //InsertItem的作用是什么?不要这行代码行不行?
strID.Format("%d", rs.m_ID);
m_cList.SetItemText(i, 0, strID);
m_cList.SetItemText(i, 1, rs.m_PERSON);
m_cList.SetItemText(i, 2, rs.m_IN_OUT);
m_cList.SetItemText(i, 3, rs.m_IO_TIME.Format("%Y-%m-%d %H:%M"));
rs.MoveNext();
i++;
}
谁回答的详细我就加分给谁 !

在list控件里面插入一个新行,怎样算详细啊?
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 );

给你个例子。。。
m_list.InsertColumn(0,"Col 1");
m_list.InsertColumn(1,"Col 2");
m_list.InsertColumn(2,"Col 3");
m_list.InsertColumn(3,"Col 4");
m_list.InsertItem(0,"row1",0);
CString stemp ="";
for(int i =0;i<4;i++)
{
stemp.Format("row 0 %d",i);
m_list.SetItemText(0,i,stemp);
}
m_list.InsertItem(0,"row befor prev",0);
m_list.InsertItem(2,"row after prev",0);
注意InsertItem的第一个参数
结果因该是这样的
row befor prev
row1 row01 row02 row03 row04
row after prev

insertItem是在你的list控件里加一行纪录
不能省略
下面的SetItemText就是在那个基础上去设置显示的字符。
具体你可以查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
);

该函数一般和CListCtr::SetItemText一起使用。
  list.InsertItem(0,"主数据");
  插入数据"主数据"到第一行的主项,你可以认为是第一列。
  list.SetItemText(0,1,"子数据");
  将第一行第二列(1表示第二列)设置为“子数据”。

楼上只给了代码没理论,我再随便说说吧,insertitem插入一项,我来讲下2参数那个,第二参数填写了item的第一字段,第一参数的nitem就是用来做比较用的,主要是判断是插在前还是插到后边