📄 treelistctrl.h
字号:
// Attributes
public:
// ***************************** CTreeCtrl ******************************
int GetCount();
CImageList* GetImageList(); // retrieve image list of global treelist
void SetImageList( CImageList* pImageList ); // set image list of global treelist
CTreeListItem* GetNextItem( CTreeListItem* pItem, UINT nCode );
BOOL ItemHasChildren( CTreeListItem* pItem );
CTreeListItem* GetChildItem( CTreeListItem* pItem );
CTreeListItem* GetNextSiblingItem( CTreeListItem* pItem );
CTreeListItem* GetPrevSiblingItem( CTreeListItem* pItem );
CTreeListItem* GetParentItem( CTreeListItem* pItem );
CTreeListItem* GetFirstVisibleItem();
CTreeListItem* GetNextVisibleItem( CTreeListItem* pItem );
CTreeListItem* GetPrevVisibleItem( CTreeListItem* pItem );
CTreeListItem* GetSelectedItem();
CTreeListItem* GetNextSelectedItem( CTreeListItem* pItem );
CTreeListItem* GetRootItem();
DWORD GetItemState( CTreeListItem* pItem, DWORD nStateMask = 0xFFFFFFFF );
void SetItemState( CTreeListItem* pItem, DWORD dwAddState, DWORD dwRemoveState = 0 );
void GetItemImage( CTreeListItem* pItem, int& nImage, int& nExpandImage, int& nSelectedImage, int& nExpandSelectedImage );
void SetItemImage( CTreeListItem* pItem, int nImage, int nExpandImage, int nSelectedImage, int nExpandSelectedImage );
LPCTSTR GetItemText( CTreeListItem* pItem, int nSubItem = 0 );
BOOL SetItemText( CTreeListItem* pItem, LPCTSTR lpszText, int nSubItem = 0 );
DWORD GetItemData( CTreeListItem* pItem );
void SetItemData( CTreeListItem* pItem, DWORD dwData );
int GetVisibleCount();
int SetItemHeight( int cyHeight = -1 ); // set height of row ( automatic )
int GetItemHeight(); // retrieve height of row
COLORREF GetBkColor( int nColor = 0 );
COLORREF SetBkColor( COLORREF clr, int nColor = 0 );
COLORREF GetTextColor();
COLORREF SetTextColor( COLORREF clr );
int GetCheck( CTreeListItem* pItem );
void SetCheck( CTreeListItem* pItem, BOOL bCheck = TRUE );
int GetLock( CTreeListItem* pItem );
void SetLock( CTreeListItem* pItem, BOOL bLock = TRUE );
BOOL GetItemRect( CTreeListItem* pItem, LPRECT lpRect );
BOOL GetItemRect( CTreeListItem* pItem, int iSubItem, LPRECT lpRect, BOOL bTextOnly );
BOOL EnsureVisible( CTreeListItem* pItem, int iSubItem );
// ***************************** CListCtrl ******************************
int GetItemCount();
int GetNextItem( int nItem, int nFlags );
POSITION GetFirstSelectedItemPosition();
CTreeListItem* GetNextSelectedItem( POSITION& pos );
int GetStringWidth( LPCTSTR lpsz );
DWORD SetColumnFormat( int nCol, DWORD dwAdd, DWORD dwRemove );
DWORD GetColumnFormat( int nCol, DWORD dwMask = 0xFFFFFFFF );
DWORD SetColumnModify( int nCol, DWORD dwModify );
DWORD GetColumnModify( int nCol );
int SetColumnWidth( int nCol, int nWidth, int nMin = 0, int nMax = 0 );
int GetColumnWidth( int nCol );
int SetColumnImage( int nCol, int iImage );
int GetColumnImage( int nCol );
BOOL SetColumnText( int nCol, LPCTSTR lpszText );
LPCTSTR GetColumnText( int nCol );
BOOL SetColumnDefaultText( int nCol, LPCTSTR lpszText );
LPCTSTR GetColumnDefaultText( int nCol );
DWORD GetItemState( int nItem, DWORD nStateMask = 0xFFFFFFFF );
void SetItemState( int nItem, DWORD dwAddState, DWORD dwRemoveState = 0 );
void GetItemImage( int nItem, int& nImage, int& nExpandImage, int& nSelectedImage, int& nExpandSelectedImage );
void SetItemImage( int nItem, int nImage, int nExpandImage, int nSelectedImage, int nExpandSelectedImage );
LPCTSTR GetItemText( int nItem, int nSubItem = 0 );
BOOL SetItemText( int nItem, int nSubItem, LPCTSTR lpszText );
DWORD GetItemData( int nItem );
void SetItemData( int nItem, DWORD dwData );
BOOL GetViewRect( LPRECT lpRect );
int GetTopIndex();
int GetCountPerPage();
BOOL GetOrigin( LPPOINT lpPoint );
UINT GetSelectedCount();
BOOL SetColumnOrderArray( int iCount, LPINT piArray );
BOOL GetColumnOrderArray( LPINT piArray, int iCount = -1 );
CTreeListHeaderCtrl* GetHeaderCtrl();
int GetSelectionMark();
int SetSelectionMark( int iIndex );
// *************************** CTreeListCtrl ****************************
void SetFont();
CFont* GetFont();
DWORD SetStyle( DWORD dwStyle );
DWORD GetStyle();
DWORD GetState( DWORD nStateMask = 0xFFFFFFFF );
void SetState( DWORD dwAddState, DWORD dwRemoveState = 0 );
int GetSelectColumn();
int GetColumnCount();
void ExchangeItem( CTreeListItem* pItemA, CTreeListItem* pItemB );
void MoveAfterItem( CTreeListItem* pItem, CTreeListItem* pAfter = NULL );
BOOL DragEnter( CTreeListCtrl* pTreeListCtrl );
BOOL DragLeave( CTreeListCtrl* pTreeListCtrl );
int DragOver( CTreeListCtrl* pTreeListCtrl, CPoint point, CTreeListItem** pp = NULL );
int Drop( CTreeListCtrl* pTreeListCtrl, CPoint point );
protected:
int GetWidth(); // retrieve display high of control
int GetHeight(); // retrieve display width of control
int GetColumns(); // retrieve columns
int GetVisibleCount( CTreeListItem* pParent );
BOOL GetItemRectTree( CTreeListItem* pItem, LPRECT lpRect );
BOOL GetItemRectMain( CTreeListItem* pItem, LPRECT lpRect );
private:
void StatChildAdd( CTreeListItem* pItem, int nChild, int nVisibleChild );
void StatChildDel( CTreeListItem* pItem, int nChild, int nVisibleChild );
void StatExpand( CTreeListItem* pItem );
void StatCollapse( CTreeListItem* pItem );
void SetItemParentStatus( CTreeListItem* pItem, DWORD dwMask );
void SetItemChildStatus( CTreeListItem* pItem, DWORD dwAdd, DWORD dwRemove = 0 );
void SetItemCheck( CTreeListItem* pItem, BOOL bAutoCheck = TRUE );
void SetItemLock( CTreeListItem* pItem, BOOL bAutoLock = TRUE );
// Operations
public:
BOOL InsertColumn( LPCTSTR lpszColumnHeading, DWORD dwFormat = TLF_DEFAULT_LEFT, int nWidth = 0, int iImage = -1, int nMin = 0, int nMax = 0);
BOOL DeleteColumn( int iCol );
int InsertItem( int nItem, LPCTSTR lpszItem );
BOOL DeleteItem( int nItem );
CTreeListItem* InsertItem( LPCTSTR lpszItem, CTreeListItem* pParent = TLI_ROOT, CTreeListItem* pInsertAfter = TLI_LAST );
BOOL DeleteItem( CTreeListItem* pItem = TLI_ROOT );
BOOL DeleteAllItems();
BOOL Expand( CTreeListItem* pItem, int nCode );
BOOL Select( CTreeListItem* pItem, int nCode );
CTreeListItem* HitTest( CPoint pt, int* pFlag = NULL, int* pSubItem = NULL, CRect* prcText = NULL );
void SelectItem( CTreeListItem* pItem, int iSubItem = 0, BOOL bClearLastSelected = TRUE );
void ActiveItem( CTreeListItem* pItem, int iSubItem = 0 );
void SetTargetItem( CTreeListItem* pItem = NULL );
void SetHoverItem( CTreeListItem* pItem = NULL );
protected:
CTreeListItem* InsertItemNew ( LPCTSTR lpszItem, CTreeListItem* pParent );
CTreeListItem* InsertItemFirst ( LPCTSTR lpszItem, CTreeListItem* pParent );
CTreeListItem* InsertItemNext ( LPCTSTR lpszItem, CTreeListItem* pParent, CTreeListItem* pInsertAfter );
CTreeListItem* GetLastChildItem( CTreeListItem* pParent = TLI_ROOT );
CTreeListItem* GetSortChildItem( CTreeListItem* pParent = TLI_ROOT );
CTreeListItem* GetValidChildItem( CTreeListItem* pParent, CTreeListItem* pChild);
BOOL Expand( CTreeListItem* pItem, int nCode, int iSubItem );
CTreeListItem* HitTest( CPoint pt, int* pFlag, int* pSubItem, CRect* prcText, CRect rcItem, CTreeListItem* pItem );
private:
CTreeListItem* InsertItemX( CTreeListItem* pParent, CTreeListItem* pNewItem );
BOOL DeleteItemX( CTreeListItem* pItem );
BOOL DeleteItemFast( CTreeListItem* pItem );
CTreeListItem* GetFirstShowItem( int nShowItem );
CTreeListItem* GetNextShowItem( CTreeListItem* pItem, BOOL bChild = TRUE );
CTreeListItem* GetNextVisibleItem( CTreeListItem* pItem, BOOL bChild );
CTreeListItem* GetPrevVisibleItem( CTreeListItem* pItem, BOOL bChild );
CTreeListItem* GetLastVisibleItem( CTreeListItem* pItem );
CTreeListItem* HitTestTree( CPoint pt, int* pFlag, CRect* prcText, CRect rcColumn, CTreeListItem* pItem );
CTreeListItem* HitTestMain( CPoint pt, int* pFlag, CRect* prcText, CRect rcColumn, CTreeListItem* pItem );
CTreeListItem* HitTestList( CPoint pt, int* pFlag, CRect* prcText, CRect rcColumn, CTreeListItem* pItem );
CTreeListItem* GetTreeListItem( int nItem );
int GetTreeListItem( CTreeListItem* pItem );
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTreeListCtrl)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
public:
BOOL SetCtrlFocus( CWnd* pWnd, BOOL bFocus = TRUE );
BOOL BeginModify( CTreeListItem* pItem, int iCol );
BOOL UpdateModify();
BOOL FinishModify();
BOOL CancelModify();
CWnd* GetControl( CTreeListItem* pItem, int iCol );
protected:
LRESULT Notify( DWORD dwMessage, CTreeListItem* pItem, int iCol );
LRESULT NotifyDrop( DWORD dwMessage, CTreeListCtrl* pSource, CTreeListItem* pItem );
void Layout();
void DrawCtrl( CDC* pDC );
void DrawBkgnd( CDC* pDC, CRect rcClip );
void DrawBkgndBmp( CDC* pDC, CRect rcClip, CBitmap* pBkgnd );
void DrawItems( CDC* pDC, CRect rcClip );
void DrawItem( CDC* pDC, CRect rcItem, CTreeListItem* pItem );
void DrawGrid( CDC* pDC, CRect rcItem );
void DrawItemBkgnd( CDC* pDC, CRect rcItem, CTreeListItem* pItem );
void DrawItemExclude( CDC* pDC, CRect rcItem, CTreeListItem* pItem );
void DrawItemTree( CDC* pDC, CRect rcColumn, CTreeListItem* pItem, int iCol );
void DrawItemMain( CDC* pDC, CRect rcColumn, CTreeListItem* pItem, int iCol );
void DrawItemList( CDC* pDC, CRect rcColumn, CTreeListItem* pItem, int iCol );
void DrawItemTreeLine( CDC* pDC, CRect rcColumn, CRect rcTree, DWORD dwFormat );
void DrawItemTreeButton( CDC* pDC, CRect rcColumn, CRect rcTree, DWORD dwFormat );
void DrawItemTreeText( CDC* pDC, CRect rcBkgnd, CTreeListItem* pItem, int iCol );
void DrawItemListText( CDC* pDC, CRect rcBkgnd, CTreeListItem* pItem, int iCol );
void DrawItemText( CDC* pDC, CRect rcBkgnd, CRect rcText, CTreeListItem* pItem, int iCol );
void SetAllScroll();
BOOL PreTranslateKeyDownMessage( MSG* pMsg );
BOOL PreTranslateKeyDownMessage2( MSG* pMsg );
int GetPrevModifyCol();
int GetNextModifyCol();
BOOL UpdateModifyColumn();
BOOL UpdateModifyColumns();
BOOL BeginControl( CTreeListItem* pItem, int iCol );
BOOL CancelControl();
BOOL RestoreControl( CTreeListItem* pItem, int iCol );
BOOL BeginStatic( CTreeListItem* pItem, int iCol, CRect rcText );
BOOL CancelStatic();
BOOL RestoreStatic( CTreeListItem* pItem, int iCol, CRect rcText );
BOOL BeginEdit( CTreeListItem* pItem, int iCol, CRect rcText );
BOOL CancelEdit();
BOOL RestoreEdit( CTreeListItem* pItem, int iCol, CRect rcText );
BOOL BeginCombo( CTreeListItem* pItem, int iCol, CRect rcText );
BOOL CancelCombo();
BOOL RestoreCombo( CTreeListItem* pItem, int iCol, CRect rcText);
BOOL BeginDraging( CPoint point );
BOOL EndDraging( CPoint point );
BOOL DoDraging( CPoint point );
BOOL EndDraging();
private:
void SetHorzScroll( CRect* pPreClient );
void SetVertScroll( CRect* pPreClient );
BOOL IsInSelectsTree( CTreeListItem* pItem );
// Generated message map functions
protected:
//{{AFX_MSG(CTreeListCtrl)
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnPaint();
afx_msg void OnEnable(BOOL bEnable);
afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
afx_msg void OnNcPaint();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnSetFocus(CWnd* pOldWnd);
afx_msg void OnKillFocus(CWnd* pNewWnd);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCancelMode();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_TREELISTCTRL_H__55B6E4E9_1E57_4FEE_AA05_77C052ACE9B5__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -