列表控件的列排序
来源:互联网 发布:长泽雅美 知乎 编辑:程序博客网 时间:2024/05/18 20:13
BOOL CListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
// TODO: Add your specialized code here and/or call the base class
if(bHScroll == FALSE)
{ switch (((NMHDR *)lParam )->code)
{
case HDN_BEGINTRACKW:
case HDN_BEGINTRACKA:
case (HDN_DIVIDERDBLCLICKA): // double click column to resize
case (HDN_DIVIDERDBLCLICKW):
*pResult=TRUE;
return TRUE;
}
}
return CListCtrl::OnNotify(wParam, lParam, pResult);
}
void CListCtrl::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if( pNMListView->iSubItem == g_iSorted)
g_fAsc = !g_fAsc;
else
{
g_fAsc = TRUE;
g_iSorted = pNMListView->iSubItem;
}
// CString str;
// str.Format("%d",g_iSorted);
// MessageBox(str);
for(int i=0;i<GetItemCount();i++)
SetItemData(i,i);
VERIFY( SortItems( CompareFunc, reinterpret_cast<DWORD>( this ) ) );
*pResult = 0;
}
int CALLBACK CListCtrl::CompareFunc( LPARAM lParam1, LPARAM lParam2, LPARAM lParamData )
{
CListCtrl * pSort = (CListCtrl *)lParamData;
BOOL bAsc=((CListCtrl*)pSort)->g_fAsc;
int nSorted=((CListCtrl*)pSort)->g_iSorted;
int nRet;
CString strData1 = pSort->GetItemText(lParam1, nSorted);
CString strData2 = pSort->GetItemText(lParam2, nSorted);
TCHAR szText[256];
LVCOLUMN col;
col.pszText=szText;
col.cchTextMax = 256;
col.mask = LVCF_TEXT;
// col.iSubItem=nSorted;
pSort ->GetColumn(nSorted,&col);
// ::MessageBox(pSort->m_hWnd,strData1,strData2,MB_OK);
long fValue1 = atol(strData1);
long fValue2 = atol(strData2);
if (lstrcmp(col.pszText,"号码") == 0)
{
// ::MessageBox(pSort->m_hWnd,col.pszText,strData2,MB_OK);
if (fValue1 == fValue2)
nRet = 0;
if (fValue1 > fValue2)
{
nRet = 1;
}
else
{
nRet = -1;
}
}
else
nRet=lstrcmp(strData1,strData2);
if ( bAsc)
{
return nRet;
}
else
{
return nRet * -1;
}
}
- 列表控件的列排序
- 如何按列 Visual C# 排序列表视图控件
- 对ListCtrl列表控件按列进行排序
- 列表控件排序功能的实现
- [转]列表控件排序功能的实现
- C#数据列表控件取消每列前面的框
- 多列列表控件中图片尺寸处理的若干问题
- 禁止改变列表视图控件的列宽
- 如何固定列表控件当中列的宽度
- PB中单击列表框的列标题实现排序
- 重写ListView控件,实现点击列头排序的功能
- 可点击列标题可进行排序的ListView控件
- VC之列表控件排序
- JS 列表控件内容排序及移出相同的项
- 点击列标题改变列表排序方式
- easyUI的列表控件(datagrid)日期列不能正确显示Json格式数据的解决方法
- 如何控制通达OA的工作流表单列表控件的列输入框
- easyUI的列表控件(datagrid)日期列不能正确显示的解决方法
- 得到当前程序的版本号
- VB开发——Access数据库数据转化到Excell表格
- 【原创】 C++ 学习指南一 (草稿) --送给各位C++初学者的新年礼物
- 在DC上画出渐变色
- VB开发——在VB应用程序中调用Excel2000对象之基本操作篇
- 列表控件的列排序
- VB开发——复制Excell表格
- C#中调用Windows API的要点
- 进程退出前删除自身EXE
- 网页设计中的颜色
- oracle form builder :关于Form/block/canvas/window
- 开始Ruby之旅
- Unicode字符串与CString字符串之间的互相转换
- Eclipse开发环境的使用