⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treelistheaderctrl.h

📁 一个关于数据结结的
💻 H
字号:
#if !defined(AFX_TREELISTHEADERCTRL_H__36D7C0D3_B2E1_4243_877C_7D72F57CD476__INCLUDED_)
#define AFX_TREELISTHEADERCTRL_H__36D7C0D3_B2E1_4243_877C_7D72F57CD476__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TreeListHeaderCtrl.h : header file
//
#include "TreeListColumnInfo.h"

#define TREELISTHEADERCTRL_CLASSNAME	_T("TurboDLL.TreeListHeaderCtrl")
#define DEFAULT_HEIGHT				20

// TreeListHeaderCtrl Format
#define TLHS_SHOWHEAD				0x0001		// show header control
#define TLHS_DRAGDROP				0x0002		// drag and drop header on header
#define TLHS_FULLDRAG				0x0004		// drag and drop header to any where 
#define TLHS_HOTTRACK				0x0008		// hot track header

#define TLHS_MASKDRAG				( TLHS_DRAGDROP | TLHS_FULLDRAG )

// TreeListHeaderCtrl HitTest Position
#define TLHT_ONHEADERSIZE			0x0001
#define TLHT_ONHEADERSPLIT			0x0002

#define TLHT_ONHEADERLEFT			0x0004
#define TLHT_ONHEADERRIGHT			0x0008

#define TLHT_ONHEADERGAPS			0x0001
#define TLHT_ONHEADERSORT			0x0002
#define TLHT_ONHEADERIMAGE			0x0004
#define	TLHT_ONHEADERTEXT			0x0008

#define TLHT_ONHEADER	( TLHT_ONHEADERGAPS | TLHT_ONHEADERSORT | TLHT_ONHEADERIMAGE | TLHT_ONHEADERTEXT )
/////////////////////////////////////////////////////////////////////////////
// CTreeListHeaderCtrl window
class TreeListColumnInfo;

class CTreeListHeaderCtrl : public CWnd
{
	friend class CTreeListCtrl;
	friend class CTLHDragWnd;
	friend class CTLHDropWnd;
// Construction
public:
	CTreeListHeaderCtrl();
	BOOL Create( DWORD dwStyle, const RECT& rect, CTreeListCtrl* pParentWnd, UINT nID = 0 );

private:
	BOOL Create();

// Members
public:

protected:
	COLORREF	m_cr3DBkgnd;
	COLORREF	m_cr3DFace;
	COLORREF	m_cr3DLight;
	COLORREF	m_cr3DShadow;
	COLORREF	m_crText;

	CFont		m_Font;					// font
	int			m_nHeaderHeight;		// height

private:
	DWORD		m_dwStyle;
	BOOL		m_bSubclassFromCreate;
	BOOL		m_bOffScreenBuffer;

	HCURSOR		m_hSize;
	HCURSOR		m_hSplit;
	HCURSOR		m_hArrow;

	CImageList			m_imgSort;
	CImageList			m_imgHeader;

	CImageList*			m_pImageList;
	CTreeListCtrl*		m_pTreeListCtrl;

	BOOL		m_bSizing;		
	BOOL		m_bSplit;		
	BOOL		m_bDraging;		

	int			m_iCol;			

	CTLHDragWnd*	m_pDragWnd;
	CTLHDropWnd*	m_pDropWnd;
	CPoint			m_ptBegin;
	CPoint			m_ptDelta;

// Attributes
public:
	void	SetHeaderFont();
	CFont*	GetHeaderFont();	
	int		GetHeaderWidth();
	int		SetHeaderHeight( int nHeight = -1 );
	int		GetHeaderHeight();

	BOOL	GetHeaderRect( CRect& rcHeader, int iCol );

	BOOL	HitTestSize( CPoint pt, int* pFlag, int* pCol );
	BOOL	HitTestGaps( CPoint pt, int* pFlag, int* pCol );
	BOOL	HitTest( CPoint pt, int* pFlag, int* pCol );

protected:
	BOOL	DrawCtrl( CDC* pDC );
	BOOL	DrawHeaders( CDC* pDC );
	BOOL	DrawHeader( CDC* pDC, CRect rcHeader, int iCol );

private:
	BOOL	BeginSizing( CPoint point );
	BOOL	EndSizing( CPoint point );
	BOOL	DoSizing( CPoint point );

	BOOL	BeginDraging( CPoint point );
	BOOL	EndDraging( CPoint point );
	BOOL	DoDraging( CPoint point );

	BOOL	DoChecking( CPoint point );

	BOOL	EndSizing();
	BOOL	EndDraging();

	int		GetSortIndex( int iCol );

	DWORD	GetStyle();
	DWORD	SetStyle( DWORD dwStyle );

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTreeListHeaderCtrl)
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CTreeListHeaderCtrl();

	// Generated message map functions
protected:
	//{{AFX_MSG(CTreeListHeaderCtrl)
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnPaint();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg void OnCancelMode();
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
	//}}AFX_MSG
	afx_msg LRESULT OnLayout( WPARAM wParam, LPARAM lParam );
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TREELISTHEADERCTRL_H__36D7C0D3_B2E1_4243_877C_7D72F57CD476__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -