00001 #if !defined(AFX_MYTREE_H__4251C668_CB43_489B_86C7_94BFBB962EE8__INCLUDED_)
00002 #define AFX_MYTREE_H__4251C668_CB43_489B_86C7_94BFBB962EE8__INCLUDED_
00003
00004 #if _MSC_VER > 1000
00005 #pragma once
00006 #endif // _MSC_VER > 1000
00007
00008 #include <commctrl.h>
00009 #include <windowsx.h>
00010
00011 BOOL TreeView_SetCheckState2(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck);
00012 BOOL TreeView_GetCheckState2(HWND hwndTreeView, HTREEITEM hItem);
00013 void TreeView_ExpandAll (HWND hTree,HTREEITEM hFirstTree,BOOL expand);
00014 BOOL TreeView_InitCheck(HWND hWndTree,DWORD idCheckOff,DWORD idCheckOn,DWORD idCheckOther,int dx,int dy);
00015
00016 typedef enum _ENotifyTree
00017 {
00018 TreeNothing,
00019 TreeSelChanging,
00020 TreeSelChanged,
00021 TreeItemExpanding,
00022 TreeClick,
00023 TreeSetCursor,
00024 TreeSetCursorOnIcon,
00025 TreeBeginLabelEdit,
00026 TreeBeginRDrag,
00027 TreeDeleteItem,
00028 TreeEndLabelEdit,
00029 TreeGetDispInfo,
00030 TreeGetInfoTip,
00031 TreeItemExpanded,
00032 TreeCustomDraw,
00033 TreeDblClk,
00034 TreeKillFocus,
00035 TreeRClick,
00036 TreeReturn,
00037 TreeSetFocus,
00038 TreeKeyDown,
00039 TreeSetDispInfo,
00040 TreeSingleExpand
00041 } ENotifyTree;
00042
00043 #include "MyControl.h"
00044
00045 class CMyTree : public CMyControl
00046 {
00047 private:
00048 BOOL m_isNextCheck;
00049 BOOL m_isCheck;
00050 BOOL m_isFirstAdd;
00051
00052 COLORREF m_textColor;
00053 COLORREF m_backgroundColor;
00054 COLORREF m_textColorHi;
00055 COLORREF m_backgroundColorHi;
00056 COLORREF m_textColorHiUf;
00057 COLORREF m_backgroundColorHiUf;
00058
00059 BOOL m_isFullRawSelected;
00060 int m_controlID;
00061
00062 void Init();
00063
00064 public:
00065 POINT m_position;
00066 HTREEITEM m_hFirstItem;
00067 HTREEITEM m_hCurrentItem;
00068
00069 public:
00070 CMyTree();
00071 CMyTree(HWND hWndTree);
00072 CMyTree(HWND hwndMaster,int x,int y,int dx,int dy,int optionalControlID=0);
00073
00074 virtual ~CMyTree() {};
00075
00076 void operator=(HWND hWndTree);
00077
00078 BOOL InitCheck(DWORD idCheckOff,DWORD idCheckOn,DWORD idCheckOther,int dx=16,int dy=16);
00079 BOOL GetCheckState(HTREEITEM hItem);
00080 BOOL SetCheckState(HTREEITEM hItem, BOOL fCheck);
00081
00082 BOOL SetItem(TVITEM *elemTree);
00083 BOOL GetItem(TVITEM *elemTree);
00084 HTREEITEM GetItem(int xPos,int yPos);
00085
00086 BOOL GetItemText(HTREEITEM hItem,char *text);
00087
00088 HTREEITEM HitTest(TVHITTESTINFO *ht);
00089
00090 HTREEITEM Add(HTREEITEM hParent,char *text,BOOL isChecking=FALSE);
00091 HTREEITEM Add(HTREEITEM hParent,HTREEITEM hInsertAfter,char *text,BOOL isChecking);
00092
00093 void DeleteAllItems();
00094 BOOL DeleteItem(HTREEITEM hItem);
00095
00096 HTREEITEM GetNextItem (HTREEITEM hItem);
00097 HTREEITEM GetChildItem(HTREEITEM hItem);
00098
00099 void Expand (HTREEITEM hItem,BOOL expand);
00100 void ExpandAll (BOOL expand,BOOL treeing=TRUE);
00101 void ExpandAll (BOOL expand,BOOL treeing,HTREEITEM rootTree);
00102
00103 BOOL Notify(LPARAM lParam,int *result);
00104
00105 HTREEITEM GetCurrentItem() { return m_hCurrentItem; }
00106 BOOL SetCurrentItem(HTREEITEM hitem);
00107
00108 int GetItemHeight();
00109 int SetItemHeight(int height=-1);
00110
00111 void SetHightLightColor (COLORREF textColor,COLORREF backgroudColor);
00112 void SetHightLightColorUnFocus (COLORREF textColor,COLORREF backgroudColor);
00113 void SetLineColor (COLORREF textColor,COLORREF backgroudColor);
00114
00115 void GetHightLightColor (COLORREF *textColor,COLORREF *backgroundColor);
00116 void GetHightLightColorUnFocus (COLORREF *textColor,COLORREF *backgroundColor);
00117 void GetLineColor (COLORREF *textColor,COLORREF *backgroundColor);
00118
00119 void SetFullRawSelect(BOOL set) { m_isFullRawSelected = set; }
00120 int GetControlID() { return m_controlID; }
00121
00122 };
00123
00124 #endif // !defined(AFX_MYTREE_H__4251C668_CB43_489B_86C7_94BFBB962EE8__INCLUDED_)