当要更新列表视图的时候,需要在填入内容之前清空之前的内容:
//清空,如果不清空,添加的时候更新的内容会出现在上面,而不是按顺序出现在最后
m_uiList.DeleteAllItems();
否则就会出现新添加的内容显示在1位置,而不是2位置。
以下是一个简单的自定义视图更新函数,从数据库中读取数据
//更新列表控件
void CclktestDlg::UpdateListCtrl()
{
//获取数据库指针
CclktestSet* pClkTestSet = GetClkSet();
pClkTestSet->m_strFilter = TEXT("");
//查询数据库
pClkTestSet->Requery();
//清空,如果不清空,添加的时候更新的内容会出现在上面,而不是按顺序出现在最后
m_uiList.DeleteAllItems();
//更新列表内容
for (int i = 0; i < pClkTestSet->GetRecordCount();i++) {
int j = 1;
m_uiList.InsertItem(i,pClkTestSet->m_clmc);
m_uiList.SetItemText(i,j++,pClkTestSet->m_clgg);
m_uiList.SetItemText(i, j++, pClkTestSet->m_clbz);
//记录集指针下移
pClkTestSet->MoveNext();
}
}