www.pudn.com > CListCtrlfjs.rar > SortHeaderCtrl.h
#ifndef SORTHEADERCTRL_H
#define SORTHEADERCTRL_H
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXTEMPL_H__
#include "afxtempl.h"
#endif
/*
// Construction
public:
CSortHeaderCtrl();
// Attributes
public:
// Operations
public:
BOOL m_bIsMousePressed;
BOOL m_bMultipleSort;
BOOL m_bAscending;
int m_nHighlightedItem;
CFont fontRegular;
COLORREF clrBtnFace, clrBtnShadow, clrBtnHilite;
COLORREF clrBtnText, clrWindowFrame;
COLORREF clrBtnDkShadow, clrBtnLight;
CBrush brBtnFace;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSortHeaderCtrl)
public:
virtual void Serialize(CArchive& ar);
virtual void OnDrawItem (CDC* pDC, int iItem, CRect rect, BOOL bIsPressed,BOOL bIsHighlighted);
virtual void OnFillBackground (CDC* pDC);
virtual void OnDrawSortArrow (CDC* pDC, CRect rectArrow);
//}}AFX_VIRTUAL
// Implementation
public:
void SetImage(UINT back,UINT asc,UINT dec);
virtual ~CSortHeaderCtrl();
void SetSortArrow( const int iColumn, const BOOL bAscending );
// Generated message map functions
protected:
// void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
int m_iSortColumn;
BOOL m_bSortAscending;
CDC m_dcBack,m_dcAsc,m_dcDec;
BOOL m_bOK;
//{{AFX_MSG(CSortHeaderCtrl)
// NOTE - the ClassWizard will add and remove member functions here.
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnCancelMode();
//}}AFX_MSG
afx_msg LRESULT OnLayout(WPARAM wparam, LPARAM lparam);
afx_msg LRESULT OnMouseLeave(WPARAM,LPARAM);
DECLARE_MESSAGE_MAP()*/
class CSortHeaderCtrl : public CHeaderCtrl
{
// Construction
public:
CSortHeaderCtrl();
// Attributes
public:
int GetSortColumn () const;
BOOL IsAscending () const;
int GetColumnState (int iColumn) const;
// Returns: 0 - not not sorted, -1 - descending, 1 - ascending
BOOL IsMultipleSort () const{ return m_bMultipleSort;}
// Operations
public:
CMap m_mapColumnsStatus; // -1, 1, 0
BOOL m_bIsMousePressed;
BOOL m_bMultipleSort;
BOOL m_bAscending;
int m_nHighlightedItem;
int m_nMouseInItem;
int m_nNoTrack;
CFont fontRegular;
COLORREF clrBtnFace, clrBtnShadow, clrBtnHilite;
COLORREF clrBtnText, clrWindowFrame;
COLORREF clrBtnDkShadow, clrBtnLight;
CBrush brBtnFace;
BOOL m_bStaticBorder;
// Operations
public:
void SetSortColumn (int iColumn, BOOL bAscending = TRUE, BOOL bAdd = FALSE);
void RemoveSortColumn (int iColumn);
void EnableMultipleSort (BOOL bEnable = TRUE);
virtual void Serialize(CArchive& ar);
void SetSortArrow( const int iColumn, const BOOL bAscending );
protected:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSortHeaderCtrl)
//}}AFX_VIRTUAL
virtual void OnDrawItem (CDC* pDC, int iItem, CRect rect, BOOL bIsPressed,BOOL bIsHighlighted);
virtual void OnFillBackground (CDC* pDC);
virtual void OnDrawSortArrow (CDC* pDC, CRect rectArrow);
virtual BOOL OnChildNotify(UINT msg, WPARAM wp, LPARAM lp, LRESULT* pRes);
// Implementation
public:
void SetNoTrack(int num);
virtual ~CSortHeaderCtrl();
// Generated message map functions
protected:
//{{AFX_MSG(CSortHeaderCtrl)
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnCancelMode();
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
//}}AFX_MSG
afx_msg LRESULT OnLayout(WPARAM wparam, LPARAM lparam);
afx_msg LRESULT OnMouseLeave(WPARAM,LPARAM);
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // SORTHEADERCTRL_H