treectrlhelper.h
来自「管理项目进度工具的原代码」· C头文件 代码 · 共 93 行
H
93 行
// TreeCtrlHelper.h: interface for the CTreeCtrlHelper class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TREECTRLHELPER_H__F6652DBE_3770_4E1C_A246_057AD6AD16B7__INCLUDED_)
#define AFX_TREECTRLHELPER_H__F6652DBE_3770_4E1C_A246_057AD6AD16B7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxtempl.h>
typedef CMap<HTREEITEM, HTREEITEM, int, int&> CMapIndices;
enum TCH_EDGE { TCHE_TOP, TCHE_BOTTOM };
enum TCH_CHECK { TCHC_UNCHECKED, TCHC_CHECKED, TCHC_MIXED };
class CTreeCtrlHelper
{
public:
CTreeCtrlHelper(CTreeCtrl& tree);
virtual ~CTreeCtrlHelper();
BOOL HasFocus(BOOL bIncEditing = TRUE);
BOOL IsItemExpanded(HTREEITEM hItem) const;
void ExpandAll(BOOL bExpand = TRUE, HTREEITEM hti = NULL);
void ExpandItem(HTREEITEM hti, BOOL bExpand = TRUE);
void SetItemIntegral(HTREEITEM hti, int iIntegral);
void SetItemChecked(HTREEITEM hti, BOOL bChecked); // 2 state
void SetItemChecked(HTREEITEM hti, TCH_CHECK nChecked); // 3 state
TCH_CHECK GetItemCheckState(HTREEITEM hti);
inline void EndLabelEdit(BOOL bCancel) { SendMessage(m_tree, TVM_ENDEDITLABELNOW, bCancel, 0); }
CString GetItemPath(HTREEITEM hti, int nMaxElementLen = -1) const; // nMaxElementLen relates to each element of the path
void InvalidateItem(HTREEITEM hti, BOOL bChildren = TRUE);
void GetClientRect(LPRECT lpRect, HTREEITEM htiFrom);
int GetItemPos(HTREEITEM hti, HTREEITEM htiParent);
int GetItemLevel(HTREEITEM hti);
HTREEITEM FindItem(DWORD dwItemData, HTREEITEM htiStart) const;
BOOL IsItemBold(HTREEITEM hti);
void SetItemBold(HTREEITEM hti, BOOL bBold = TRUE);
void SetTopLevelItemsBold(BOOL bBold = TRUE);
void SetItemStateEx(HTREEITEM hti, UINT nState, UINT nMask, BOOL bChildren = FALSE);
HTREEITEM GetTopLevelParentItem(HTREEITEM hti) const;
HTREEITEM GetNextTopLevelItem(HTREEITEM hti, BOOL bNext = TRUE) const;
// returns the top level item whose child is the first visible item (or itself)
HTREEITEM GetFirstVisibleTopLevelItem(int& nPos); // return 0 if no items
HTREEITEM GetTopLevelParentItem(HTREEITEM hti);
int BuildVisibleIndexMap() { return BuildVisibleIndexMap(VIMap()); }
BOOL ItemLineIsOdd(HTREEITEM hti) { return ItemLineIsOdd(VIMap(), hti); }
int BuildVisibleIndexMap(CMapIndices& index);
BOOL ItemLineIsOdd(CMapIndices& index, HTREEITEM hti);
// return increments of item height
void SetMinDistanceToEdge(HTREEITEM htiFrom, TCH_EDGE nToEdge, int nItems);
int GetDistanceToEdge(HTREEITEM htiFrom, TCH_EDGE nToEdge);
// get next/prev selectable items, NULL if none
HTREEITEM GetNextPageVisibleItem(HTREEITEM hti) const;
HTREEITEM GetPrevPageVisibleItem(HTREEITEM hti) const;
HTREEITEM GetNextVisibleItem(HTREEITEM hti, BOOL bAllowChildren = TRUE) const;
HTREEITEM GetPrevVisibleItem(HTREEITEM hti, BOOL bAllowChildren = TRUE) const;
int FindItem(HTREEITEM htiFind, HTREEITEM htiStart); // return -1 for above, 1 for below, 0 if same
BOOL IsFullyVisible(HTREEITEM hti) const;
void EnsureVisibleEx(HTREEITEM hti, BOOL bVPartialOK = TRUE, BOOL bHPartialOK = TRUE);
protected:
CTreeCtrl& m_tree;
mutable CMapIndices* m_pVisibleIndices;
protected:
void AddVisibleItemToIndex(CMapIndices& index, HTREEITEM hti);
CMapIndices& VIMap();
const CMapIndices& VIMap() const;
};
#endif // !defined(AFX_TREECTRLHELPER_H__F6652DBE_3770_4E1C_A246_057AD6AD16B7__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?