CoolTreeCtrl.h
上传用户:rxhxxy
上传日期:2007-01-02
资源大小:72k
文件大小:8k
源码类别:

TreeView控件

开发平台:

Visual C++

  1. #if !defined(_COOLTREEFOO_H__INCLUDED_)
  2. #define _COOLTREEFOO_H__INCLUDED_
  3. ////////////////////////////////////////////////////////////////
  4. // CCoolTreeCtrl 1997 by Rainer Pfitzner. 
  5. // Compiles with Visual C++ 5.0 on Windows 95
  6. //////////////////
  7. // CCoolTreeCtrl encapsulates IE 4.0 common coolbar for MFC.
  8. //
  9. class CCoolTreeCtrl : public CWnd {
  10. protected:
  11. DECLARE_DYNAMIC(CCoolTreeCtrl)
  12. // Operations
  13. public:
  14. CCoolTreeCtrl();
  15. BOOL Create(DWORD dwStyle, CRect rect, CWnd* pParentWnd, UINT nID);
  16. HTREEITEM InsertItem( LPTV_INSERTSTRUCT lptvis)
  17. { ASSERT(::IsWindow(m_hWnd));
  18.   return (HTREEITEM)SendMessage(TVM_INSERTITEM, (WPARAM)0, (LPARAM)lptvis); }
  19. BOOL DeleteAllItems()
  20. { ASSERT(::IsWindow(m_hWnd));
  21.   return (BOOL)SendMessage(TVM_DELETEITEM, (WPARAM)0, (LPARAM)TVI_ROOT); }
  22. BOOL Expand(HTREEITEM hitem, UINT code)
  23. { ASSERT(::IsWindow(m_hWnd));
  24.   return (BOOL)SendMessage(TVM_EXPAND, (WPARAM)code, (LPARAM)hitem); }
  25. HTREEITEM GetItemRect(HTREEITEM hItem, LPRECT prc, UINT code)
  26. { ASSERT(::IsWindow(m_hWnd));
  27. *(HTREEITEM*)prc = hItem;
  28.   return (HTREEITEM)SendMessage(TVM_GETITEMRECT, (WPARAM)code, (LPARAM)prc); } 
  29. UINT GetIndent(int iCol)
  30. { ASSERT(::IsWindow(m_hWnd));
  31.   return (UINT)SendMessage(TVM_GETINDENT, (WPARAM)iCol, (LPARAM)0L); }
  32. BOOL SetIndent(int indent)
  33. { ASSERT(::IsWindow(m_hWnd));
  34.   return (BOOL)SendMessage(TVM_SETINDENT, (WPARAM)indent, (LPARAM)0L); }
  35. UINT GetCount()
  36. { ASSERT(::IsWindow(m_hWnd));
  37.   return (UINT)SendMessage(TVM_GETCOUNT, (WPARAM)0, (LPARAM)0L); }
  38. HIMAGELIST SetImageList(HIMAGELIST himl, int iImage)
  39. { ASSERT(::IsWindow(m_hWnd));
  40.   return (HIMAGELIST)SendMessage(TVM_SETIMAGELIST, (WPARAM)iImage, (LPARAM)himl); }
  41. HIMAGELIST SetImageList(CImageList* piml, int iImage)
  42. { ASSERT(::IsWindow(m_hWnd));
  43.   return (HIMAGELIST)SendMessage(TVM_SETIMAGELIST, (WPARAM)iImage, (LPARAM)(HIMAGELIST)piml); }
  44. HIMAGELIST GetImageList()
  45. { ASSERT(::IsWindow(m_hWnd));
  46.   return (HIMAGELIST)SendMessage(TVM_GETIMAGELIST, (WPARAM)0, (LPARAM)0L); }
  47. HTREEITEM GetNextItem(HTREEITEM hitem, UINT code)
  48. { ASSERT(::IsWindow(m_hWnd));
  49.   return (HTREEITEM)SendMessage(TVM_GETNEXTITEM, (WPARAM)code, (LPARAM)hitem); }
  50. HTREEITEM SelectItem(HTREEITEM hitem, UINT code)
  51. { ASSERT(::IsWindow(m_hWnd));
  52.   return (HTREEITEM)SendMessage(TVM_SELECTITEM, (WPARAM)code, (LPARAM)hitem); }
  53. // TreeView_Select(hwnd, hitem, TVGN_CARET)
  54. // TreeView_Select(hwnd, hitem, TVGN_DROPHILITE)
  55. // TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE)
  56. BOOL GetItem( LPTVITEM pItem)
  57. { ASSERT(::IsWindow(m_hWnd));
  58.   return (BOOL)SendMessage(TVM_GETITEM, (WPARAM)0, (LPARAM)pItem); }
  59. BOOL SetItem( LPTVITEM pItem)
  60. { ASSERT(::IsWindow(m_hWnd));
  61.   return (BOOL)SendMessage(TVM_SETITEM, (WPARAM)0, (LPARAM)pItem); }
  62. HWND EditLabel(HTREEITEM hitem)
  63. { ASSERT(::IsWindow(m_hWnd));
  64.   return (HWND)SendMessage(TVM_EDITLABEL, (WPARAM)0, (LPARAM)hitem); }
  65. HWND GetEditControl()
  66. { ASSERT(::IsWindow(m_hWnd));
  67.   return (HWND)SendMessage(TVM_GETEDITCONTROL, (WPARAM)0, (LPARAM)0L); }
  68. UINT GetVisibleCount()
  69. { ASSERT(::IsWindow(m_hWnd));
  70.   return (UINT)SendMessage(TVM_GETVISIBLECOUNT, (WPARAM)0, (LPARAM)0L); }
  71. HTREEITEM HitTest(LPTVHITTESTINFO lphti)
  72. { ASSERT(::IsWindow(m_hWnd));
  73.   return (HTREEITEM)SendMessage(TVM_HITTEST, (WPARAM)0, (LPARAM)lphti); }
  74. BOOL SortChildren(HTREEITEM hitem, BOOL recurse)
  75. { ASSERT(::IsWindow(m_hWnd));
  76.   return (BOOL)SendMessage(TVM_SORTCHILDREN, (WPARAM)recurse, (LPARAM)hitem); }
  77. BOOL EnsureVisible(HTREEITEM hitem)
  78. { ASSERT(::IsWindow(m_hWnd));
  79.   return (BOOL)SendMessage(TVM_ENSUREVISIBLE, (WPARAM)0, (LPARAM)hitem); }
  80. BOOL SortChildrenCB(LPTV_SORTCB psort, BOOL recurse)
  81. { ASSERT(::IsWindow(m_hWnd));
  82.   return (BOOL)SendMessage(TVM_SORTCHILDRENCB, (WPARAM)recurse, (LPARAM)psort); }
  83. BOOL EndEditLabelNow( BOOL fCancel)
  84. { ASSERT(::IsWindow(m_hWnd));
  85.   return (BOOL)SendMessage(TVM_ENDEDITLABELNOW, (WPARAM)fCancel, (LPARAM)0L); }
  86. BOOL GetISearchString(LPCTSTR lpsz)
  87. { ASSERT(::IsWindow(m_hWnd));
  88.   return (BOOL)SendMessage(TVM_GETISEARCHSTRING, (WPARAM)0, (LPARAM)lpsz); }
  89. COLORREF SetBkColor(COLORREF clr)
  90. { ASSERT(::IsWindow(m_hWnd));
  91.   return (COLORREF)SendMessage(TVM_SETBKCOLOR, (WPARAM)0, (LPARAM)clr); }
  92. COLORREF GetBkColor()
  93. { ASSERT(::IsWindow(m_hWnd));
  94.   return (COLORREF)SendMessage(TVM_GETBKCOLOR, (WPARAM)0, (LPARAM)0); }
  95. COLORREF SetTextColor(COLORREF clr)
  96. { ASSERT(::IsWindow(m_hWnd));
  97.   return (COLORREF)SendMessage(TVM_SETTEXTCOLOR, (WPARAM)0, (LPARAM)clr); }
  98. COLORREF GetTextColor()
  99. { ASSERT(::IsWindow(m_hWnd));
  100.   return (COLORREF)SendMessage(TVM_GETTEXTCOLOR, (WPARAM)0, (LPARAM)0); }
  101. UINT SetScrollTime(UINT uTime)
  102. { ASSERT(::IsWindow(m_hWnd));
  103.   return (UINT)SendMessage(TVM_SETSCROLLTIME, (WPARAM)0, (LPARAM)uTime); }
  104. UINT GetScrollTime()
  105. { ASSERT(::IsWindow(m_hWnd));
  106.   return (UINT)SendMessage(TVM_GETSCROLLTIME, (WPARAM)0, (LPARAM)0); }
  107. int SetBorder(DWORD dwFlags, int xBorder, int yBorder)
  108. { ASSERT(::IsWindow(m_hWnd));
  109.   return (int)SendMessage(TVM_SETBORDER, (WPARAM)dwFlags, (LPARAM)MAKELPARAM(xBorder, yBorder)); }
  110. int GetBorder()
  111. { ASSERT(::IsWindow(m_hWnd));
  112.   return (int)SendMessage(TVM_GETBORDER, (WPARAM)0, (LPARAM)0); }
  113. int SetItemHeight(int iHeight)
  114. { ASSERT(::IsWindow(m_hWnd));
  115.   return (int)SendMessage(TVM_SETITEMHEIGHT, (WPARAM)iHeight, (LPARAM)0); }
  116. int GetItemHeight()
  117. { ASSERT(::IsWindow(m_hWnd));
  118.   return (int)SendMessage(TVM_GETITEMHEIGHT, (WPARAM)0, (LPARAM)0); }
  119. HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
  120. int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,
  121. HTREEITEM hParent, HTREEITEM hInsertAfter);
  122. BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage,
  123. int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam);
  124. BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszText);
  125. // ie4 added 6.may.98
  126. BOOL SetWorkAreas(int nWorkAreas, LPRECT prc)
  127. { ASSERT(::IsWindow(m_hWnd));
  128.   return (BOOL)SendMessage(LVM_SETWORKAREAS, (WPARAM)nWorkAreas, (LPARAM)prc); }
  129. BOOL GetWorkAreas(int nWorkAreas, LPRECT prc)
  130. { ASSERT(::IsWindow(m_hWnd));
  131.   return (BOOL)SendMessage(LVM_GETWORKAREAS, (WPARAM)nWorkAreas, (LPARAM)prc); }
  132. BOOL GetNumberOfWorkAreas(LPINT pnWorkAreas)
  133. { ASSERT(::IsWindow(m_hWnd));
  134.   return (BOOL)SendMessage(LVM_GETNUMBEROFWORKAREAS, (WPARAM)0, (LPARAM)pnWorkAreas); }
  135. int GetSelectionMark()
  136. { ASSERT(::IsWindow(m_hWnd));
  137.   return (int)SendMessage(LVM_GETSELECTIONMARK, (WPARAM)0, (LPARAM)0L); }
  138. int SetSelectionMark(int i)
  139. { ASSERT(::IsWindow(m_hWnd));
  140.   return (int)SendMessage(LVM_SETSELECTIONMARK, (WPARAM)0, (LPARAM)i); }
  141. DWORD GetHoverTime()
  142. { ASSERT(::IsWindow(m_hWnd));
  143.   return (DWORD)SendMessage(LVM_GETHOVERTIME, (WPARAM)0, (LPARAM)0L); }
  144. DWORD SetHoverTime(DWORD dwHoverTimeMs)
  145. { ASSERT(::IsWindow(m_hWnd));
  146.   return (DWORD)SendMessage(LVM_SETHOVERTIME, (WPARAM)0, (LPARAM)dwHoverTimeMs); }
  147. BOOL GetBkImage(LPLVBKIMAGE plvbki)
  148. { ASSERT(::IsWindow(m_hWnd));
  149.   return (BOOL)SendMessage(LVM_GETBKIMAGE, (WPARAM)0, (LPARAM)plvbki); }
  150. BOOL SetBkImage(LPLVBKIMAGE plvbki)
  151. { ASSERT(::IsWindow(m_hWnd));
  152.   return (BOOL)SendMessage(LVM_SETBKIMAGE, (WPARAM)0, (LPARAM)plvbki); }
  153. HTREEITEM HitTest(CPoint pt, UINT* pFlags = NULL) const;
  154. CString GetItemText(HTREEITEM hItem) const;
  155. BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage) const;
  156. UINT GetItemState(HTREEITEM hItem, UINT nStateMask) const;
  157. DWORD GetItemData(HTREEITEM hItem) const;
  158. BOOL ItemHasChildren(HTREEITEM hItem) const;
  159. CImageList* CreateDragImage(HTREEITEM hItem);
  160. // Implementation
  161. public:
  162. virtual ~CCoolTreeCtrl();
  163. protected:
  164. void RemoveImageList(int nImageList);
  165. // Generated message map functions
  166. //{{AFX_MSG(CCoolTreeCtrl)
  167. afx_msg void OnDestroy();
  168. //}}AFX_MSG
  169. DECLARE_MESSAGE_MAP()
  170. };
  171. #endif //