在列表控件CListctrl中函数insertcolumn(列索引,列结构指针 )表示按照列的索引插入列。既然如此,执行了该函数后列表也应该完成了|||到底有没有完成,我搞不清除,这也是问题所在|||(我的意思是把某些列插入后,则形成了一个列表。比如:从星期1--->星期5的课程表,按照星期(列)逐步插入后,则所有的行也就自然形成了(即:第一节课(monday->friday)语文,数学,英语,物理,化学自然形成)。
课程 星期1 星期2 星期3 星期4 星期5
----------------------------------------
1 语文 数学 英语 物理 化学
----------------------------------------
2 物理 化学 语文 数学 英语
----------------------------------------
3 数学 英语 物理 语文 化学
----------------------------------------
4 自习 计算机 美术 音乐 体育
----------------------------------------
5.....................................
----------------------------------------
问题:为什么还要insertitem函数干什么?
下面的代码就是我所说的问题,程序可以运行,但是本人就是有点不明白,请各位大侠指点【用到一点ODBC数据库方面的知识】,整个源代码如附件所示,可以运行,但是我有点搞不清这个道理。。
第一段代码:
int i=0,j=0;
CODBCFieldInfo DbFi;//存储记录集字段信息的结构体
LV_COLUMN m_Lc;//存储列信息的结构体
m_Lc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;//设置列属性
//读取记录集的字段信息
for(i=0;i<m_Set->m_nFields;i++)
{
m_Set->GetODBCFieldInfo(i,DbFi);
m_Lc.iSubItem=i;
m_Lc.fmt=LVCFMT_LEFT;
m_Lc.cx=DbFi.m_strName.GetLength()*10+100;
m_Lc.pszText=DbFi.m_strName.GetBuffer(DbFi.m_strName.GetLength());
GetListCtrl().InsertColumn(i,&m_Lc);?????????把列插进,究竟插进去的是什么
}
..............
第2段代码:
LV_ITEM m_item;//条目结构体对象
CString string;//字符串临时变量
CDBVariant DbVariant;
i=0;
if(m_Set->IsEOF())//记录集是否为空
{
AfxMessageBox("记录集没有记录");
return;
}
m_Set->MoveFirst();//从第一个记录开始
while(m_Set->IsEOF()==0)//是否到达最后一个记录
{
m_item.mask=LVIF_TEXT;
m_item.iItem=i;
m_item.iSubItem=0;
m_Set->GetFieldValue((short)0,string);
m_item.pszText=string.GetBuffer(string.GetLength());
m_List->InsertItem(&m_item);//?????????还插这个鬼东西干什么?
//显示列数据
for(j=1;j<m_Set->m_nFields;j++)
{
m_Set->GetFieldValue((short)j,string);
m_List->SetItemText(i,j,string.GetBuffer(string.GetLength()));
}
m_Set->MoveNext();//下移记录
i++;
}