使用CListCtrl的InsertItem往前插记录时LVS_REPORT显示正确而LVS_ICON显示乱序
我在使用CListCtrl控件时只使用LVS_ICON和LVS_SMALLICON两种模式,现在有个需求就是想动态的在数据中插入新记录,比如InsertItem(0,xxx)插一条记录到最前面。调用是成功的,但新插入的记录只在显示在最后,此时如果切换成LVS_REPORT模式时,新插入的记录显示在最前。后面这种情况算是正确的,那不使用这种模式时如何解决乱序的问题呢?
实例:
CListCtrl m_lvw;
m_lvw.ModifyStyle(LVS_ALIGNMASK, LVS_AUTOARRANGE);
m_lvw.InsertColumn(0, "Header", LVCFMT_CENTER, 100);
void CTestLvwDlg::OnBnClickedInsert()
{
static int index = 1;
CString strIndex;
strIndex.Format("%d", index++);
m_lvw.InsertItem(0, strIndex);
}
void CTestLvwDlg::OnBnClickedSmallIcon()
{
m_lvw.ModifyStyle(LVS_TYPEMASK, LVS_SMALLICON, 0);
}
void CTestLvwDlg::OnBnClickedLargeIcon()
{
m_lvw.ModifyStyle(LVS_TYPEMASK, LVS_ICON, 0);
}
void CTestLvwDlg::OnBnClickedReport()
{
m_lvw.ModifyStyle(LVS_TYPEMASK, LVS_REPORT, 0);
}
不断的调用OnBnClickedInsert()插入新记录时,LVS_REPORT显示正确而另外两种模式显示的是乱的。