www.pudn.com > CListCtrlfjs.rar > SortListCtrl.h
/*******************************************
没事儿,尽管用。
--栾义明
*********************************************/
#ifndef SORTLISTCTRL_H
#define SORTLISTCTRL_H
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef SORTHEADERCTRL_H
#include "SortHeaderCtrl.h"
#endif // 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 CSortListCtrl : public CListCtrl
{
// Construction
public:
CSortListCtrl();
virtual CSortHeaderCtrl& GetHeaderCtrl ()
{
return m_ctlHeader;
}
// Attributes
public:
// Operations
public:
BOOL SetHeadings( UINT uiStringID );
BOOL SetHeadings( const CString& strHeadings );
int AddItem( LPCTSTR pszText, ... );
BOOL DeleteItem( int iItem );
BOOL DeleteAllItems();
void LoadColumnInfo();
void SaveColumnInfo();
BOOL SetItemText( int nItem, int nSubItem, LPCTSTR lpszText );
void Sort( int iColumn, BOOL bAscending );
BOOL SetItemData(int nItem, DWORD dwData);
DWORD GetItemData(int nItem) const;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSortListCtrl)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
public:
BOOL SetExcelShow(BOOL bShow);
void SetHeadImage(UINT back,UINT asc,UINT dec);
void SetItemImage(int nItem,int nSubItem,int nImage);
int InsertItem2(LPCTSTR pszText);
void ResetHendings();
void SetColumnColorShow(BOOL bShow);
void SetItemColor(int nItem, COLORREF clrText, COLORREF clrBkgnd);
void UpdateHeadColumn();
void SetCustomColor(COLORREF m_textcolor,COLORREF m_backcolor,COLORREF m_checkcolumcolor,COLORREF m_checktextcolor,COLORREF m_checkbackcolor);
void SetItemColor(int nItem, int nSubItem, COLORREF clrText, COLORREF clrBkgnd);
void DrawText(int nItem, int nSubItem, CDC *pDC, COLORREF crText, COLORREF crBkgnd, CRect &rect,int nImage);
BOOL GetSubItemRect(int nItem, int nSubItem, int nArea, CRect& rect);
int GetColumns();
int AddItemColor(LPCTSTR pszText,COLORREF crText,COLORREF crBak);
virtual ~CSortListCtrl();
// Generated message map functions
protected:
void UpdateSubItem(int nItem, int nSubItem);
static int CALLBACK CompareFunction( LPARAM lParam1, LPARAM lParam2, LPARAM lParamData );
void FreeItemMemory( const int iItem );
BOOL CSortListCtrl::SetArray( int iItem, LPTSTR* arrpsz ,COLORREF * clrText,COLORREF * clrBak,int *nImage);
LPTSTR* CSortListCtrl::GetTextArray( int iItem ) const;
CSortHeaderCtrl m_ctlHeader;
int m_iNumColumns;
int m_iSortColumn;
BOOL m_bSortAscending;
BOOL m_bExcelShow;
//{{AFX_MSG(CSortListCtrl)
afx_msg void OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDestroy();
afx_msg void OnPaint();
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSysColorChange();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
int m_OldColumnClick;
BOOL m_bColumnColorShow;
COLORREF m_textcolor,m_backcolor,m_checkcolumcolor,m_checktextcolor,m_checkbackcolor;
COLORREF crWindowText,crWindow,crHighLight,crHighLightText;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // SORTLISTCTRL_H