控件ListCtrl 点击表头排序
2013-01-04 15:11
357 查看
//回调函数 排序(回调函数要声明为static)
int CALLBACK CSortListctrl::CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)
{
CSortListctrl * p = (CSortListctrl *)lParamSort;
CString str1, str2;
int iCompRes;
str1 = p->GetItemText(lParam1, p->m_nSortedCol);
str2 = p->GetItemText(lParam2, p->m_nSortedCol);
iCompRes = str1.Compare(str2);
if (!p->m_fAsc)
return iCompRes;
else
return (iCompRes * (-1));
}
//函数 m_nSortedCol是当前选中的列 int m_nSortedCol,bool m_fAsc
void CSortListctrl::OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->iSubItem == m_nSortedCol)
m_fAsc = !m_fAsc;
else
{
m_fAsc = TRUE;
m_nSortedCol = pNMListView->iSubItem;
}
int iTemCount = this->GetItemCount();
for (int i = 0; i < iTemCount; ++i)
{
this->SetItemData(i,i);
}
this->SortItems(CompareFunc, (LPARAM)(this));
*pResult = 0;
}
ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnClick)//事件
int CALLBACK CSortListctrl::CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)
{
CSortListctrl * p = (CSortListctrl *)lParamSort;
CString str1, str2;
int iCompRes;
str1 = p->GetItemText(lParam1, p->m_nSortedCol);
str2 = p->GetItemText(lParam2, p->m_nSortedCol);
iCompRes = str1.Compare(str2);
if (!p->m_fAsc)
return iCompRes;
else
return (iCompRes * (-1));
}
//函数 m_nSortedCol是当前选中的列 int m_nSortedCol,bool m_fAsc
void CSortListctrl::OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if (pNMListView->iSubItem == m_nSortedCol)
m_fAsc = !m_fAsc;
else
{
m_fAsc = TRUE;
m_nSortedCol = pNMListView->iSubItem;
}
int iTemCount = this->GetItemCount();
for (int i = 0; i < iTemCount; ++i)
{
this->SetItemData(i,i);
}
this->SortItems(CompareFunc, (LPARAM)(this));
*pResult = 0;
}
ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnClick)//事件
相关文章推荐
- 实现Repeater控件点击表头排序功能
- 实现Repeater控件点击表头排序功能
- ListCtrl点击表头排序的总结
- 实现Repeater控件点击表头排序功能
- 实现Repeater控件点击表头排序功能
- AJAX 表格字段数据排序,点击表头每列排序
- ehlib5.6 中,dbgrideh控件如何实现点击字段名称排序
- JS实现点击表头表格自动排序(含数字、字符串、日期)
- [置顶] 对ListCtrl列表控件按列进行排序
- DBGrid控件“点击标题栏自动排序功能”
- MFC之右键点击listctrl控件弹出菜单
- 点击list控件排序的实现
- AJAX 表格字段数据排序,点击表头每列排序
- C# ListView中点击表头ColumnClick实现对相应列的排序
- ehlib5.6 中,dbgrideh控件如何实现点击字段名称排序
- GridView点击表头排序
- 点击表头排序(ASP)
- AJAX 表格字段数据排序,点击表头每列排序
- GridView之点击表头排序篇