1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /************************************************************************/
- /* Copyright (C), 2016-2020, [IT], 保留所有权利;
- /* 模 块 名:;
- /* 描 述:;
- /*
- /* 版 本:[V];
- /* 作 者:[IT];
- /* 日 期:[10/21/2016];
- /*
- /*
- /* 注 意:;
- /*
- /* 修改记录:[IT];
- /* 修改日期:;
- /* 修改版本:;
- /* 修改内容:;
- /************************************************************************/
- #ifndef __LIST_SORT_CTRL__
- #define __LIST_SORT_CTRL__
- #pragma once
- // CListSortCtrl
- #include "SortHeaderCtrl.h"
- #ifdef _DEBUG
- #define ASSERT_VALID_STRING( str ) ASSERT( !IsBadStringPtr( str, 0xfffff ) )
- #else // _DEBUG
- #define ASSERT_VALID_STRING( str ) ( (void)0 )
- #endif // _DEBUG
- class CListSortCtrl : public CListCtrl
- {
- DECLARE_DYNAMIC(CListSortCtrl)
- public:
- CListSortCtrl();
- virtual ~CListSortCtrl();
- protected:
- DECLARE_MESSAGE_MAP()
- virtual void PreSubclassWindow();
- public:
- // 数据;
- CArray<CStringArray, CStringArray> m_AryList;
- // 是否支持排序;
- BOOL m_bSortSupport;
- // 列表字体;
- CFont m_cfont;
- LOGFONT m_logfont;
- // 浅色;
- COLORREF m_clrLightGrid;
- // 深色;
- COLORREF m_clrDarkGrid;
- // 排序的序;
- static INT m_nCompareColumn;
- // 升降序;
- static BOOL m_bSortAscending;
- // 列表头控件;
- CSortHeaderCtrl m_Ctrlheader;
- // 设置list列信息;
- BOOL SetHeadings( IN LPCTSTR pszText, ... );
- // 设置字体;
- void SetListFont(IN CString strFontName, IN int nFontSize, IN BOOL bBold = FALSE, IN BOOL bItalic = FALSE);
- static bool IsNumber( LPCTSTR pszText );
- static int NumberCompare( LPCTSTR pszNumber1, LPCTSTR pszNumber2 );
- static bool IsDate( LPCTSTR pszText );
- static int DateCompare( const CString& strDate1, const CString& strDate2 );
- static int __cdecl CompareByLabel( const void *elem1, const void *elem2);
- private:
- // 列表注册表键名;
- CString m_strSection;
- // 列数;
- INT m_nNumColumns;
- // 要排序的列;
- INT m_nSortColumns;
- protected:
- // 选择排序的列;
- void SortByCol(IN const INT nColIndex);
- // 加载列信息;
- void LoadColumnInfo();
- // 保存列信息;
- void SaveColumnInfo();
- public:
- void RemoveAll();
- afx_msg void OnLvnColumnclick(NMHDR *pNMHDR, LRESULT *pResult);
- afx_msg void OnLvnGetdispinfo(NMHDR *pNMHDR, LRESULT *pResult);
- #ifndef __LIST_DRAW__
- afx_msg void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult);
- #endif
- afx_msg void OnDestroy();
- };
- #endif // __LIST_SORT_CTRL__
|