📄 sort.cpp
字号:
// Sort.cpp : implementation file//#include "stdafx.h"#include "Sort.h"#include "UnicodeFunc.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// RxSort/////////////////////////////////////////////////////////////////////////////// RxSort member functionsRxSort::RxSort(CListCtrl * _pWnd, const int _iCol){ pWnd = _pWnd; ASSERT(pWnd); int max = pWnd->GetItemCount(); DWORD dw; CString txt; // 酒捞袍 单捞磐甫 CSortitem 备炼眉肺 函券 for( int t = 0 ; t < max ; t++ ) { dw = pWnd->GetItemData(t); // 唱吝俊 汗备甫 困秦 泅犁 单捞磐 历厘 txt = pWnd->GetItemText(t, _iCol); pWnd->SetItemData(t, (DWORD) new CSortItem(dw, txt)); }}RxSort::~RxSort(){ ASSERT(pWnd); int max = pWnd->GetItemCount(); CSortItem * pItem; for( int t = 0 ; t < max ; t++ ) { pItem = (CSortItem*) pWnd->GetItemData(t); ASSERT(pItem); pWnd->SetItemData(t, pItem->dw); delete pItem; }}BOOL RxSort::Sort(BOOL _bAsc, EDataType _dtype){ long lParamSort = _dtype; // lParmSort啊 澜荐捞搁 郴覆 瞒鉴, 剧荐搁 坷抚瞒鉴 if (!_bAsc) lParamSort *= -1; return pWnd->SortItems(Compare, lParamSort);}int CALLBACK RxSort::Compare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort){ CSortItem* item1 = (CSortItem*) lParam1; CSortItem* item2 = (CSortItem*) lParam2; ASSERT(item1 && item2); // lParamSort肺 何磐 单捞磐 鸥涝苞 家飘 鉴辑甫 搬沥 // lParmSort啊 澜荐捞搁 郴覆 瞒鉴, 剧荐搁 坷抚瞒鉴 short sOrder = lParamSort < 0 ? -1 : 1; EDataType dType = (EDataType)(lParamSort* sOrder); COleDateTime t1, t2; switch(dType) { case EDataType::dtINT: return (_ttol(item1->txt) - _ttol(item2->txt))*sOrder; case EDataType::dtDOUBLE: return int((wtof(item1->txt) - wtof(item2->txt))*sOrder); case EDataType::dtDEC: return (wtof(item1->txt) < wtof(item2->txt) ? -1 : 1)*sOrder; case EDataType::dtDATETIME: if (t1.ParseDateTime(item1->txt) && t2.ParseDateTime(item2->txt)) return (t1 < t2 ? -1 : 1 )*sOrder; else return 0; case EDataType::dtSTRING: return item1->txt.CompareNoCase(item2->txt)*sOrder; default: ASSERT("Error: attempt to sort a column without type."); return 0; }}RxSort::CSortItem::CSortItem(const DWORD _dw, const CString & _txt){ dw = _dw; txt = _txt;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -