CMFCListCtrl自动排序
青稞 2010-04-20 06:56:18 今天工作需要用CMFCListCtrl的排序功能,自己继承CMFCListCtrl类,
if (!m_wndListCtrl.Create(WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE | LVS_REPORT | LVS_SHOWSELALWAYS, CRect(0,0,200,200), this, ID_LIST_CTRL))
{
TRACE0("未能创建窗口\n");
return -1; // 未能创建
}
m_wndListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_ONECLICKACTIVATE);
重载OnCompareItems
int CMyListCtrl::OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn)
{
long i = (int)(lParam1);
long j = (int)(lParam2);
CString str1 = GetItemText(i, iColumn);
CString str2 = GetItemText(j, iColumn);
return str1.Compare(str2);
}
发现排序会有点乱。。要多点击几次排序,才能按顺序排列好。。
熟悉这个的兄弟们,麻烦指点下,要怎么做才行,还有,这个是按照字符比较,应该还有数字比较的吧?
网上看其他的ListCtrl里面的比较,要调用回调函数,CMFCListCtrl因该封装了的吧,不用回调了吧?