UITreeCtrl.h
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:7k
源码类别:

图形图象

开发平台:

Visual C++

  1. //*******************************************************************************
  2. // COPYRIGHT NOTES
  3. // ---------------
  4. // You may use this source code, compile or redistribute it as part of your application 
  5. // for free. You cannot redistribute it as a part of a software development 
  6. // library without the agreement of the author. If the sources are 
  7. // distributed along with the application, you should leave the original 
  8. // copyright notes in the source code without any changes.
  9. // This code can be used WITHOUT ANY WARRANTIES at your own risk.
  10. // 
  11. // For the latest updates to this code, check this site:
  12. // http://www.masmex.com 
  13. // after Sept 2000
  14. // 
  15. // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
  16. //*******************************************************************************
  17. #if !defined(AFX_URLTREECTRL_H__9743E546_1F3A_11D2_A40D_9CB186000000__INCLUDED_)
  18. #define AFX_URLTREECTRL_H__9743E546_1F3A_11D2_A40D_9CB186000000__INCLUDED_
  19. #if _MSC_VER >= 1000
  20. #pragma once
  21. #endif // _MSC_VER >= 1000
  22. // URLTreeCtrl.h : header file
  23. //
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CUITreeCtrl window
  26. #include "UIFolderRefresh.h"
  27. #include "UIDragDropTree.h"
  28. #include "UIData.h"
  29. class CTRL_EXT_CLASS CUITreeCtrl : public CUIDragDropTree
  30. {
  31. DECLARE_DYNAMIC(CUITreeCtrl)
  32. // Construction
  33. public:
  34. CUITreeCtrl(bool bDragDrop=true);
  35. // Attributes
  36. public:
  37. virtual void UpdateCurrentSelection();
  38. void SetStyle(UINT nStyle);
  39. void AddStyle(UINT nStyle);
  40. DWORD GetItemData(HTREEITEM hItem) const;
  41. BOOL SetItemData(HTREEITEM hItem,DWORD dwData,bool bAutoDelete=false);
  42. void SetDefaultTextColor(HTREEITEM hItem);
  43. void SetDefaultBkColor(HTREEITEM hItem);
  44. void SetTextColor(HTREEITEM hItem,COLORREF TextColor);
  45. void SetBkColor(HTREEITEM hItem,COLORREF BkColor);
  46. void SetItemFont(HTREEITEM hItem,CFont *pFont);
  47. void SetItemBold(HTREEITEM hItem,bool bBold);
  48. // Operations
  49. public:
  50. virtual void Init();
  51. virtual HTREEITEM AddAnItem(HTREEITEM hParent, LPCTSTR szText, LPARAM lParam, HTREEITEM hInsAfter,int iImage = 0,int iSelImage = 0,int nChildren = 0);
  52. void SetPopupID(UINT nID);
  53. void SetPopupWnd(CWnd *pWnd);
  54. protected:
  55. virtual void OnDeleteItemData(DWORD dwData);
  56. virtual CUIListCtrlData *GetNewListCtrlData(DWORD dwData,HTREEITEM hParent);
  57. virtual CUIListCtrlData *GetListCtrlData(HTREEITEM hItem) const;
  58. virtual void ItemPostPaint(LPNMTVCUSTOMDRAW lptvcd,LRESULT *pResult);
  59. virtual void ItemPrePaint(LPNMTVCUSTOMDRAW lptvcd,LRESULT *pResult);
  60. virtual bool EndLabelEdit(HTREEITEM hItem,LPCTSTR pszText);
  61. virtual HTREEITEM GetHitItem(CPoint *pt);
  62. virtual UINT GetMenuID();
  63. virtual CWnd *GetMenuWnd();
  64. virtual bool Expanding(NM_TREEVIEW *nmtvw);
  65. virtual bool Collapsing(NM_TREEVIEW *nmtvw);
  66. virtual void UpdateEvent(LPARAM lHint,CObject *pHint);
  67. virtual UINT GetIconID();
  68. virtual UINT GetOpenIconID();
  69. virtual void DoubleClick(HTREEITEM hItem);
  70. virtual void SelectionChanged(HTREEITEM hItem,LPARAM lParam);
  71. virtual CRefresh *CreateRefreshObject(HTREEITEM hItem,LPARAM lParam);
  72. // OLE Drag and Drop
  73. // This called when a drop source is dropped on the list control
  74. virtual bool DragDrop(CDD_OleDropTargetInfo *pInfo);
  75. // This called when a drop source is currently over the list control
  76. // This called when a drop source is currently over the list control
  77. virtual bool DragOver(CDD_OleDropTargetInfo *pInfo);
  78. virtual bool DragEnter(CDD_OleDropTargetInfo *pInfo);
  79. virtual bool DragLeave(CDD_OleDropTargetInfo *pInfo);
  80. // This called when the user initiates a OLE drag and drop
  81. virtual DROPEFFECT DoDragDrop(NM_TREEVIEW* pNMTreeView,COleDataSource *pOleDataSource);
  82. virtual void DeleteKey(HTREEITEM hItem);
  83. virtual void ShowPopupMenu(HTREEITEM hItem,CPoint point);
  84. virtual void ShowProperties(HTREEITEM hItem);
  85. virtual void Refresh();
  86. virtual void GoBack(HTREEITEM hItem);
  87. // Overrides
  88. // ClassWizard generated virtual function overrides
  89. //{{AFX_VIRTUAL(CUITreeCtrl)
  90. public:
  91. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  92. virtual BOOL PreTranslateMessage(MSG* pMsg);
  93. //}}AFX_VIRTUAL
  94. // Implementation
  95. public:
  96. virtual ~CUITreeCtrl();
  97. // Generated message map functions
  98. protected:
  99. //{{AFX_MSG(CUITreeCtrl)
  100. afx_msg BOOL OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
  101. afx_msg BOOL OnReturn(NMHDR* pNMHDR, LRESULT* pResult);
  102. afx_msg BOOL OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
  103. afx_msg BOOL OnItemExpanded(NMHDR* pNMHDR, LRESULT* pResult);
  104. afx_msg BOOL OnItemExpanding(NMHDR* pNMHDR, LRESULT* pResult);
  105. afx_msg BOOL OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
  106. afx_msg BOOL OnRclick(NMHDR* pNMHDR, LRESULT* pResult);
  107. afx_msg BOOL OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
  108. afx_msg BOOL OnDeleteItem(NMHDR* pNMHDR, LRESULT* pResult);
  109. afx_msg void OnKeydownFolder(NMHDR* pNMHDR, LRESULT* pResult);
  110. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  111. afx_msg void OnTimer(UINT nIDEvent);
  112. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  113. afx_msg LRESULT OnTVMGetItem(WPARAM wParam,LPARAM lParam);
  114. afx_msg LRESULT OnTVMSetItem(WPARAM wParam,LPARAM lParam);
  115. afx_msg LRESULT OnTVMInsertItem(WPARAM wParam,LPARAM lParam);
  116. //}}AFX_MSG
  117. afx_msg LRESULT OnAppPropertiesKey(WPARAM wParam, LPARAM lParam );
  118. afx_msg LRESULT OnAppDeleteKey(WPARAM wParam, LPARAM lParam );
  119. afx_msg LRESULT OnAppRefreshKey(WPARAM wParam, LPARAM lParam );
  120. afx_msg LRESULT OnAppBackspaceKey(WPARAM wParam, LPARAM lParam );
  121. afx_msg LRESULT OnAppContextMenuKey(WPARAM wParam, LPARAM lParam );
  122. afx_msg LRESULT OnAppEditKey(WPARAM wParam, LPARAM lParam );
  123. afx_msg LRESULT OnTimerSelChange(WPARAM wParam,LPARAM lParam);
  124. afx_msg LRESULT OnDragDrop(WPARAM wParam,LPARAM lParam);
  125. afx_msg LRESULT OnDragOver(WPARAM wParam,LPARAM lParam);
  126. afx_msg LRESULT OnDragEnter(WPARAM wParam,LPARAM lParam);
  127. afx_msg LRESULT OnDragLeave(WPARAM wParam,LPARAM lParam);
  128. afx_msg LRESULT OnDDDoDragDrop(WPARAM wParam,LPARAM lParam);
  129. DECLARE_MESSAGE_MAP()
  130. protected:
  131. int m_idxClosed;
  132. int m_idxOpen;
  133. WORD m_vkeydown;
  134. private:
  135. CImageList m_ImageList;
  136. NM_TREEVIEW m_NMTreeView;
  137. LPARAM m_lParam;
  138. UINT m_IDTimer;
  139. UINT m_style;
  140. HFONT m_hOrigFont;
  141. bool m_bMe;
  142. protected:
  143. CWnd *m_pPopupWnd;
  144. UINT m_PopupID;
  145. };
  146. inline void CUITreeCtrl::SetStyle(UINT nStyle)
  147. {
  148. m_style = nStyle;
  149. }
  150. inline void CUITreeCtrl::AddStyle(UINT nStyle)
  151. {
  152. m_style |= nStyle;
  153. }
  154. /////////////////////////////////////////////////////////////////////////////
  155. //{{AFX_INSERT_LOCATION}}
  156. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  157. #endif // !defined(AFX_URLTREECTRL_H__9743E546_1F3A_11D2_A40D_9CB186000000__INCLUDED_)