www.pudn.com > MFCVista.rar > ItreeCtrl.h


#pragma once 
 
#include "Iontrlpos.h" 
class AFX_EXT_CLASS CITreeCtrl : public CTreeCtrl,public CIontrlPos 
{ 
protected: 
	DECLARE_DYNAMIC(CITreeCtrl) 
	DECLARE_MESSAGE_MAP() 
public: 
	CITreeCtrl(); 
	virtual ~CITreeCtrl(); 
protected:	 
	int			m_iImageWidth, 
				m_iImageHeight; 
	CImageList	m_imgTree; 
	CString		m_strDesktopDir;//不包含strDesktopName 
	CString		m_strDesktopName; 
	CBitmap		m_bmpTree, 
				m_bmpBtn; 
	CPen		m_penItemLine; 
protected: 
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnPaint();	 
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); 
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); 
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); 
public: 
	afx_msg void OnTvnItemexpanded(NMHDR *pNMHDR, LRESULT *pResult); 
protected: 
	virtual void ItemExpanded(LPNMTREEVIEW pNMTreeView); 
	virtual void RightButtonDown(UINT nFlags, CPoint point); 
protected: 
	virtual void SetAttributeDC(CDC *pDC,HTREEITEM hItemAttribute); 
	virtual void TextOut(CDC *pDC,CRect &rctItem,HTREEITEM hCurItem,const CString &strItemText); 
	virtual void DrawItemImage(CDC *pDC,CRect &rctItem,HTREEITEM hCurItem,CImageList &imgTree); 
	virtual void DrawFocus(CDC *pDC,HTREEITEM hCurItem,CRect &rctItem); 
	virtual void DrawButton(CDC *pDC,CRect &rctItem,HTREEITEM hCurItem); 
	virtual void DrawItemLine(CDC *pDC,CRect &rctItem,HTREEITEM hCurItem); 
	virtual void DrawBackGround(CDC *pDC,CRect &rctCli); 
public://文件树 
	HTREEITEM	GetRoot(HTREEITEM); 
	HTREEITEM	FindItem(HTREEITEM hStarttItem,const CString &strFindItem); 
	void		FindFileToTree(CTreeCtrl *TreeCtrl,const CString &path,HTREEITEM hUnused=0); 
	void		FindFileToTree(const CString &path,HTREEITEM hParentItem=0); 
	CString		GetPathFromTree(); 
	CString		GetPathFromTree(HTREEITEM hItem); 
	CString		GetPathFromTree(HTREEITEM hItem,HTREEITEM hStartItem); 
	int			GetTreeDeep(HTREEITEM hItem);//得到树的深度 
	CString		GetDesktopFileDir(); 
	void		SetAtt(UINT bmpIconList,UINT bmpTreeNode,COLORREF clrMask=RGB(255,0,255),int iIconWidth=18,int iIconHeight=18); 
	bool		IsExpandedItem(HTREEITEM hTestItem); 
	BOOL		ItemHasButton(HTREEITEM hTestItem); 
public://属性 
	CString		GetDesktopName(); 
	CBitmap		&GetBtnImage(); 
	int			GetImageWidth(); 
};