home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / database / daoctl / ctrlext.h < prev    next >
C/C++ Source or Header  |  1998-03-26  |  5KB  |  161 lines

  1. // ctrlext.h :
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #ifndef __TREECTLX_H__
  14. #define __TREECTLX_H__
  15.  
  16. #ifdef _AFX_NO_AFXCMN_SUPPORT
  17.     #error Windows Common Control classes not supported in this library variant.
  18. #endif
  19.  
  20. #ifndef __AFXWIN_H__
  21.     #include <afxwin.h>
  22. #endif
  23.  
  24. /////////////////////////////////////////////////////////////////////////////
  25. // TREECTLX - MFC Tree Control Helper Classes
  26.  
  27. class CTreeCursor;
  28. class CTreeCtrlEx;
  29.  
  30.  
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CTreeCursor
  33.  
  34. class CTreeCursor
  35. {
  36.     // Attributes
  37. protected:
  38.     HTREEITEM   m_hTreeItem;
  39.     CTreeCtrlEx *m_pTree;
  40.  
  41.     // Implementation
  42. protected:
  43.     CTreeCursor CTreeCursor::_Insert(LPCTSTR strItem,int nImageIndex,HTREEITEM hAfter);
  44.  
  45.     // Operation
  46. public:
  47.     CTreeCursor();
  48.     CTreeCursor(HTREEITEM hTreeItem, CTreeCtrlEx* pTree);
  49.     CTreeCursor(const CTreeCursor& posSrc);
  50.     ~CTreeCursor();
  51.     const CTreeCursor& operator =(const CTreeCursor& posSrc);
  52.     operator HTREEITEM();
  53.  
  54.     CTreeCursor InsertAfter(LPCTSTR strItem,HTREEITEM hAfter,int nImageIndex = -1);
  55.     CTreeCursor AddHead(LPCTSTR strItem,int nImageIndex = -1);
  56.     CTreeCursor AddTail(LPCTSTR strItem,int nImageIndex = -1);
  57.  
  58.     int GetImageID();
  59.  
  60.     BOOL GetRect(LPRECT lpRect, BOOL bTextOnly);
  61.     CTreeCursor GetNext(UINT nCode);
  62.     CTreeCursor GetChild();
  63.     CTreeCursor GetNextSibling();
  64.     CTreeCursor GetPrevSibling();
  65.     CTreeCursor GetParent();
  66.     CTreeCursor GetFirstVisible();
  67.     CTreeCursor GetNextVisible();
  68.     CTreeCursor GetPrevVisible();
  69.     CTreeCursor GetSelected();
  70.     CTreeCursor GetDropHilight();
  71.     CTreeCursor GetRoot();
  72.     CString GetText();
  73.     BOOL GetImage(int& nImage, int& nSelectedImage);
  74.     UINT GetState(UINT nStateMask);
  75.     DWORD GetData();
  76.     BOOL Set(UINT nMask, LPCTSTR lpszItem, int nImage,
  77.         int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam);
  78.     BOOL SetText(LPCTSTR lpszItem);
  79.     BOOL SetImage(int nImage, int nSelectedImage);
  80.     BOOL SetState(UINT nState, UINT nStateMask);
  81.     BOOL SetData(DWORD dwData);
  82.     BOOL HasChildren();
  83. // Operations
  84.     BOOL Delete();
  85.  
  86.     BOOL Expand(UINT nCode = TVE_EXPAND);
  87.     BOOL Select(UINT nCode);
  88.     BOOL Select();
  89.     BOOL SelectDropTarget();
  90.     BOOL SelectSetFirstVisible();
  91.     CEdit* EditLabel();
  92.     CImageList* CreateDragImage();
  93.     BOOL SortChildren();
  94.     BOOL EnsureVisible();
  95. };
  96.  
  97.  
  98. /////////////////////////////////////////////////////////////////////////////
  99. // CTreeCtrlEx
  100.  
  101. class CTreeCtrlEx : public CTreeCtrl
  102. {
  103.     // Attributes
  104. protected:
  105.  
  106.     // Operation
  107. public:
  108.     CTreeCtrlEx();
  109.     ~CTreeCtrlEx();
  110.     CImageList* SetImageList(CImageList* pImageList, int nImageListType = TVSIL_NORMAL);
  111.  
  112.     CTreeCursor GetNextItem(HTREEITEM hItem, UINT nCode);
  113.     CTreeCursor GetChildItem(HTREEITEM hItem);
  114.     CTreeCursor GetNextSiblingItem(HTREEITEM hItem);
  115.     CTreeCursor GetPrevSiblingItem(HTREEITEM hItem);
  116.     CTreeCursor GetParentItem(HTREEITEM hItem);
  117.     CTreeCursor GetFirstVisibleItem();
  118.     CTreeCursor GetNextVisibleItem(HTREEITEM hItem);
  119.     CTreeCursor GetPrevVisibleItem(HTREEITEM hItem);
  120.     CTreeCursor GetSelectedItem();
  121.     CTreeCursor GetDropHilightItem();
  122.     CTreeCursor GetRootItem();
  123.     CTreeCursor InsertItem(LPTV_INSERTSTRUCT lpInsertStruct);
  124.     CTreeCursor InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
  125.         int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,
  126.         HTREEITEM hParent, HTREEITEM hInsertAfter);
  127.     CTreeCursor InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT,
  128.         HTREEITEM hInsertAfter = TVI_LAST);
  129.     CTreeCursor InsertItem(LPCTSTR lpszItem, int nImage, int nSelectedImage,
  130.         HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
  131.     CTreeCursor HitTest(CPoint pt, UINT* pFlags = NULL);
  132.     CTreeCursor HitTest(TV_HITTESTINFO* pHitTestInfo);
  133. };
  134.  
  135. /////////////////////////////////////////////////////////////////////////////
  136. // CListCtrlEx
  137.  
  138. class CListCtrlEx : public CListCtrl
  139. {
  140.     // Attributes
  141. protected:
  142.  
  143.     // Operation
  144. public:
  145.     CListCtrlEx();
  146.     ~CListCtrlEx();
  147.     CImageList* SetImageList(CImageList* pImageList, int nImageListType = TVSIL_NORMAL);
  148.     BOOL AddColumn(
  149.         LPCTSTR strItem,int nItem,int nSubItem = -1,
  150.         int nMask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM,
  151.         int nFmt = LVCFMT_LEFT);
  152.     BOOL AddItem(int nItem,int nSubItem,LPCTSTR strItem,int nImageIndex = -1);
  153. };
  154.  
  155.  
  156. /////////////////////////////////////////////////////////////////////////////
  157.  
  158. #include "CtrlExt.inl"
  159.  
  160. #endif //__TREECTLX_H__
  161.