#if !defined(AFX_DATANODETREE_H__952ADEC4_EB6E_4EC8_BE77_C29A8690CE06__INCLUDED_) #define AFX_DATANODETREE_H__952ADEC4_EB6E_4EC8_BE77_C29A8690CE06__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // DataNodeTree.h : header file // #include ///////////////////////////////////////////////////////////////////////////// // CDataNodeTree window #define WM_SELCHANGED WM_USER+10001 #define WM_OPERATION WM_USER+10002 class CTreeItemData { public: CTreeItemData(){m_dwData = NULL;} DWORD m_dwData; HTREEITEM m_hItem; }; class EXPORT_CLASS CDataNodeTreeCtrl : public CTreeCtrl { DECLARE_DYNCREATE(CDataNodeTreeCtrl) // Construction public: CDataNodeTreeCtrl(); CDataNodeTreeCtrl& GetTreeCtrl(); HTREEITEM GetSelectedItem () const; //==================MultiSel======== CMapPtrToPtr* GetSelectedItems(); DWORD GetItemData (HTREEITEM hItem) const; BOOL SetItemData (HTREEITEM hItem, DWORD dwData); HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct ); HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam, HTREEITEM hParent, HTREEITEM hInsertAfter ); HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); HTREEITEM InsertItem( LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST); BOOL DeleteItem (HTREEITEM hItem); BOOL DeleteAllItems (); void ChangePauseDeviceIco(HTREEITEM hItem, BOOL bPause); //==================MultiSel======== // Attributes public: int m_nPauseMaskImage; CMapPtrToPtr m_mapNodeTohItem; // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDataNodeTree) //}}AFX_VIRTUAL // Implementation public: virtual ~CDataNodeTreeCtrl(); void SetDataNode(CDataNodeBase* pNode, BOOL bInitCtrl); BOOL SelectItem(HTREEITEM hItem); CImageListDyn m_imageList; // Generated message map functions protected: void SelectItem(UINT nFlags, HTREEITEM hItem); CMapPtrToPtr m_listSels; HTREEITEM m_hItemFirstSel; HTREEITEM m_hItemLastSel; BOOL m_bOnMouseSel; //{{AFX_MSG(CDataNodeTreeCtrl) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnDestroy(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); //}}AFX_MSG CDataNodeBase* m_pNode; DECLARE_MESSAGE_MAP() protected: CBitmap m_bmpImage; }; #define TREE_CONTROL_IN_VIEW 3001 class EXPORT_CLASS CDataNodeTree : public CTreeView//CTreeCtrl { DECLARE_DYNCREATE(CDataNodeTree) // Construction public: CDataNodeTree(); CDataNodeTreeCtrl& GetTreeCtrl(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDataNodeTree) //}}AFX_VIRTUAL // Implementation public: virtual ~CDataNodeTree(); void SetDataNode(CDataNodeBase* pNode, BOOL bInitCtrl); CImageListDyn m_imageList; // Generated message map functions protected: CDataNodeTreeCtrl m_tree; //{{AFX_MSG(CDataNodeTree) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnSize(UINT nType, int cx, int cy); //}}AFX_MSG CDataNodeBase* m_pNode; DECLARE_MESSAGE_MAP() protected: CBitmap m_bmpImage; }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DATANODETREE_H__952ADEC4_EB6E_4EC8_BE77_C29A8690CE06__INCLUDED_)