今天看到一程序,是在列表视图中插入数据,感觉奇怪的是在循环中,m_list.SetItemText的第一参数为什么始终是0,如果是0的话,那不就始终在第一行插入数据了吗?但最终结果是能够正常的插入多行数据。不明白,请各位高手们解释一下哦
while (!m_pRecordset->adoEOF) //记录集不为空时循环
{
m_List.InsertItem(0,""); //向列表视图控件中插入行
//向列表视图控件中插入列
m_List.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("Merchandise"));
m_List.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("Sum"));
m_pRecordset->MoveNext();//将记录集指针移动到下一条记录 }
while (!m_pRecordset->adoEOF) //记录集不为空时循环
{
m_List.InsertItem(0,""); //向列表视图控件中插入行
//向列表视图控件中插入列
m_List.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("Merchandise"));
m_List.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("Sum"));
m_pRecordset->MoveNext();//将记录集指针移动到下一条记录 }
解决方案 »
- multimap insert 插入数据失败
- USB口的区分
- 一个简单的遍历算法问题,但我不会,请各位大虾帮忙!
- 模式对话框中关于回车键的问题!
- 用标准vc 写定义无符号整型数组的语句
- easy easy easy question!but i am a newer!help,thanks!
- 求vc++6.0下载地址,谢谢!
- 在socket通讯过程中,10061是什么错误啊
- 我是一个非计算机专业的刚出道快一年的程序员,所以我的基础比较差,请问..........谢谢
- 已知适配器的MAC地址以及对应的编号(如0000,0001之类的),怎样获得其对应的IP地址?
- VC 急需求助 !!!!!!!!
- 远程协助,通过代理服务器的问题
自己看看吧0_0也许有用
因为是每次都插入了一行然后插入的数据0_0
//向列表视图控件中插入列
m_List.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("Merchandise"));
m_List.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("Sum"));
===============
这个问题是这样的:
你每次InsertItem的时候都是把新的条目插入到第0个位置。所以,新条目就会取代你上次第0个位置的条目。再看你SetItemText每次操作的对象也是第0个,但是,是新的第0个。
如此更替,你可以得到了如上的结果
int nItem,
int nSubItem,
LPCTSTR lpszText
);
Parameters
nItem
Index of the item whose text is to be set. nSubItem
Index of the subitem, or zero to set the item label. lpszText
Pointer to a string that contains the new item text.
始终新插入的数据在第一行,原来的数据依次往下移
只有m_List.InsertItem(0,"")和m_list.SetItemText的第一参数为0时,才能正确插入数据。