TSortColumn.h
上传用户:louyoung
上传日期:2007-01-02
资源大小:123k
文件大小:2k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /************************************
  2.   REVISION LOG ENTRY
  3.   Revision By: Mihai Filimon
  4.   Revised on 5/22/98 8:52:03 AM
  5.   Comments: TSortColumn.h: interface for the CTSortColumn class.
  6.  ************************************/
  7. #if !defined(AFX_TSORTCOLUMN_H__395EEE51_E42C_11D1_85EF_0040055C08D9__INCLUDED_)
  8. #define AFX_TSORTCOLUMN_H__395EEE51_E42C_11D1_85EF_0040055C08D9__INCLUDED_
  9. #if _MSC_VER >= 1000
  10. #pragma once
  11. #endif // _MSC_VER >= 1000
  12. #include <math.h>
  13. #include <afxtempl.h>
  14. class CTSortColumns;
  15. typedef int  (*COLUMNCALLBACKCOMPARE) (const TCHAR* stringi, const TCHAR* stringj);
  16. typedef void (*SHOWPROGRESSBAR) (CTSortColumns* pSort);
  17. struct ColumnOrder
  18. {
  19. int m_nColumn;
  20. short m_nAsc;
  21. ColumnOrder(int nColumn = 0, short nAsc = 1)
  22. {
  23. m_nColumn = nColumn;
  24. m_nAsc = nAsc;
  25. }
  26. };
  27. typedef struct _SItemStruct
  28. {
  29. CStringArray m_arStrItemText;
  30. LPARAM m_lParam;
  31. } SItemStruct;
  32. typedef struct _SItemStructUni
  33. {
  34. _SItemStructUni(CString& strItemText, LPARAM lParam)
  35. {
  36. m_strItemText = strItemText;
  37. m_lParam = lParam;
  38. };
  39. CString m_strItemText;
  40. LPARAM m_lParam;
  41. } SItemStructUni;
  42. typedef struct _CompareColumnOrder
  43. {
  44. _CompareColumnOrder(COLUMNCALLBACKCOMPARE pCallBackCompare, short nAsc)
  45. {
  46. m_pCallBackCompare = pCallBackCompare;
  47. m_nAsc = nAsc;
  48. };
  49. COLUMNCALLBACKCOMPARE m_pCallBackCompare;
  50. short m_nAsc;
  51. } CompareColumnOrder;
  52. class CTsyslistviewex;
  53. class CTSortColumns
  54. {
  55. public:
  56. void Sort();
  57. int m_nCmpsMax;
  58. int m_nCmpsCur;
  59. int GetCountOrderColumn() const;
  60. void AddOrderColumn(int nColumn, short nAsc = 1);
  61. void ResetOrderColumn();
  62. void AttachControl(CTsyslistviewex* pListCtrl = NULL);
  63. void Add(int nColumn, COLUMNCALLBACKCOMPARE pCallBackCompare);
  64. void Delete(int nColumn);
  65. SHOWPROGRESSBAR m_pFctShowProgressBar;
  66. CTSortColumns();
  67. virtual ~CTSortColumns();
  68. CTsyslistviewex* m_pListCtrl;
  69. CMap<int, int, COLUMNCALLBACKCOMPARE, COLUMNCALLBACKCOMPARE> m_mapColumnsSort;
  70. CArray<ColumnOrder*, ColumnOrder*> m_arOrderColumn;
  71. int m_nOrderColumn;
  72. protected:
  73. void SortMultiColumn();
  74. void SortUniColumn();
  75. private:
  76. };
  77. #endif // !defined(AFX_TSORTCOLUMN_H__395EEE51_E42C_11D1_85EF_0040055C08D9__INCLUDED_)