📄 xhtmltree.h
字号:
m_nNoDropCursor = nNoDropCursor;
m_nDropCopyCursor = nDropCopyCursor;
m_nDropMoveCursor = nDropMoveCursor;
return *this;
}
CXHtmlTree& SetHasCheckBoxes(BOOL bHasCheckBoxes)
{ m_bCheckBoxes = bHasCheckBoxes; return *this; }
CXHtmlTree& SetHtml(BOOL bFlag)
{ m_bHtml = bFlag; return *this; }
CXHtmlTree& SetImages(BOOL bFlag)
{ m_bImages = bFlag; return *this; }
COLORREF SetInsertMarkColor(COLORREF rgb);
BOOL SetItemBold(HTREEITEM hItem, BOOL bBold);
CXHtmlTree& SetItemNote(HTREEITEM hItem, LPCTSTR lpszNote, int nTipWidth = 0);
BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszItem);
COLORREF SetItemTextBkColor(HTREEITEM hItem, COLORREF rgb);
COLORREF SetItemTextColor(HTREEITEM hItem, COLORREF rgb);
CXHtmlTree& SetItemStateChildren(HTREEITEM hItem, BOOL fCheck);
CXHtmlTree& SetLogfont(LOGFONT * pLogFont);
CXHtmlTree& SetReadOnly(BOOL bReadOnly)
{ m_bReadOnly = bReadOnly; return *this; }
CXHtmlTree& SetSelectFollowsCheck(BOOL bFlag)
{ m_bSelectFollowsCheck = bFlag; return *this; }
CXHtmlTree& SetSeparatorColor(COLORREF rgb); //+++1.6
CXHtmlTree& SetSmartCheckBox(BOOL bFlag)
{ m_bSmartCheck = bFlag; return *this; }
CXHtmlTree& SetStripHtml(BOOL bFlag)
{ m_bStripHtml = bFlag; return *this; }
COLORREF SetTextColor(COLORREF rgb);
#ifdef XHTMLTOOLTIPS
CPPToolTip * SetToolTips(CPPToolTip * pWndTip)
{ CPPToolTip * old = m_pToolTip; m_pToolTip = pWndTip; return old; }
#else
CToolTipCtrl * SetToolTips(CToolTipCtrl * pWndTip)
{ CToolTipCtrl * old = m_pToolTip; m_pToolTip = pWndTip; return old; }
#endif // XHTMLTOOLTIPS
CXHtmlTree& SetUseLogfont(BOOL bFlag)
{ m_bLogFont = bFlag; return *this; }
//=============================================================================
// Operations
//=============================================================================
public:
void CheckAll(BOOL bCheck);
void CollapseBranch(HTREEITEM hItem);
BOOL CreateCheckboxImages();
void CreateToolTipsForTree();
BOOL DeleteItem(HTREEITEM hItem);
BOOL EnableBranch(HTREEITEM hItem, BOOL bEnabled);
BOOL EnableItem(HTREEITEM hItem, BOOL bEnabled);
BOOL EnableWindow(BOOL bEnable = TRUE);
BOOL Expand(HTREEITEM hItem, UINT nCode);
void ExpandBranch(HTREEITEM hItem);
void ExpandAll();
void CollapseAll();
BOOL DeleteAllItems();
virtual HTREEITEM FindItem(CString &sSearch,
BOOL bCaseSensitive = FALSE,
BOOL bDownDir = TRUE,
BOOL bWholeWord = FALSE,
BOOL bWrap = TRUE,
HTREEITEM hItem = NULL);
int IncrementChildren(HTREEITEM hItem, int n = 1);
int IncrementSeparators(HTREEITEM hItem, int n = 1);
CXHtmlTree& Initialize(BOOL bCheckBoxes = FALSE, BOOL bToolTip = FALSE);
HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct, XHTMLTREEDATA * pData = NULL);
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);
HTREEITEM InsertSeparator(HTREEITEM hItem);
void RedrawItem(HTREEITEM hItem);
BOOL SelectItem(HTREEITEM hItem);
HCURSOR SetCursor(HCURSOR hCursor);
//=============================================================================
// XML functions
//=============================================================================
#ifdef XHTMLXML
public:
enum ConvertAction
{
NoConvertAction = 0, ConvertToUnicode, ConvertToAnsi
};
BOOL ConvertBuffer(const BYTE * inbuf,
DWORD inlen, // in bytes
BYTE ** outbuf,
DWORD& outlen, // in bytes
ConvertAction eConvertAction = NoConvertAction);
CString GetXmlText(HTREEITEM hItem, LPCTSTR lpszElem);
BOOL LoadXmlFromBuffer(const BYTE * pBuf, DWORD len, ConvertAction eConvertAction);
BOOL LoadXmlFromFile(LPCTSTR lpszFile, ConvertAction eConvertAction);
BOOL LoadXmlFromResource(HINSTANCE hInstance, LPCTSTR lpszResId,
LPCTSTR lpszResType, ConvertAction eConvertAction);
BOOL SaveXml(HTREEITEM hItem, LPCTSTR lpszFileName, BOOL bSaveAsUTF16);
protected:
HTREEITEM InsertXmlItem(CXmlElement *pElement, HTREEITEM hParent);
BOOL LoadXml(CXmlDocument& xml, CXmlElement *pElement,
HTREEITEM hParent, int& nCount);
#endif // XHTMLXML
//=============================================================================
// Overrides
//=============================================================================
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CXHtmlTree)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void PreSubclassWindow();
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
//=============================================================================
// Implementation
//=============================================================================
protected:
CMap< HTREEITEM, HTREEITEM, XHTMLTREEDATA *, XHTMLTREEDATA *& > m_DataMap;
// maps HTREEITEM ==> XHTMLTREEDATA
BOOL m_bReadOnly; // TRUE = tree is read-only
// (checkboxes disabled)
BOOL m_bSmartCheck; // TRUE = Smart Checkboxes enabled
BOOL m_bCheckBoxes; // TRUE = checkboxes enabled
BOOL m_bSelectFollowsCheck; // TRUE = item will be selected,
// after user clicks on checkbox
BOOL m_bHtml;
BOOL m_bStripHtml;
BOOL m_bLogFont;
BOOL m_bToolTip;
BOOL m_bImages; // TRUE = allow images
BOOL m_bDestroyingTree;
BOOL m_bFirstTime;
BOOL m_bDragging;
BOOL m_bAutoScroll; // TRUE = tree will automatically
// scroll when dragging
HTREEITEM m_hAnchorItem;
HTREEITEM m_hHotItem;
HTREEITEM m_hPreviousItem;
HTREEITEM m_hItemButtonDown;
HTREEITEM m_hPreviousDropItem;
DWORD m_dwDropHoverTime; // number of ticks over a drop item
int m_nPadding; // horizontal padding in pixels
int m_nImageHeight;
int m_nToolCount; // no. of items added to tooltip
// control
int m_nDefaultTipWidth;
int m_nXmlCount; // count of items loaded from XML
// file
int m_nDeleted;
int m_nDeletedChecked;
CImageList m_StateImage;
LOGFONT m_lf;
int m_nHorzPos; // initial horz scroll position - saved
// before in-place edit begins
UINT m_nScrollTime; // used for scrolling while dragging
DWORD m_dwDragOps; // drag features
UINT m_nNoDropCursor; // resource ID for no-drop cursor
UINT m_nDropCopyCursor; // resource ID for drop (copy) cursor
UINT m_nDropMoveCursor; // resource ID for drop (move) cursor
HCURSOR m_hNoDropCursor; // no-drop cursor handle
HCURSOR m_hDropCopyCursor; // drop (copy) cursor handle
HCURSOR m_hDropMoveCursor; // drop (move) cursor handle
HCURSOR m_hPreviousCursor;
HCURSOR m_hCurrentCursor;
#ifdef XHTMLTOOLTIPS
CPPToolTip * m_pToolTip;
#else
CToolTipCtrl * m_pToolTip;
#endif // XHTMLTOOLTIPS
COLORREF m_crCustomWindow;
COLORREF m_crCustomWindowText;
COLORREF m_crWindow;
COLORREF m_crWindowText;
COLORREF m_crAnchorText;
COLORREF m_crGrayText;
COLORREF m_crHighlight;
COLORREF m_crHighlightText;
COLORREF m_crInsertMark;
COLORREF m_crSeparator;
void AdjustEditRect();
void AutoScroll(HTREEITEM hItem);
void DeleteBranch(HTREEITEM hItem);
void DeleteMap();
int DrawItemText(CDC *pDC, HTREEITEM hItem, LPCTSTR lpszText,
COLORREF crText, COLORREF crTextBackground,
COLORREF crBackground, CRect& rect);
#ifdef XHTMLHTML
int DrawItemTextHtml(CDC *pDC, HTREEITEM hItem, LPCTSTR lpszText,
COLORREF crText, COLORREF crTextBackground,
COLORREF crBackground, COLORREF crAnchorText,
CRect& rect);
#endif // XHTMLHTML
int DrawSeparator(CDC *pDC, HTREEITEM hItem,
COLORREF crText, COLORREF crBackground, CRect& rect);
void EndDragScroll();
int GetNormalImageWidth(HTREEITEM hItem);
BOOL IsBadRect(CRect& r)
{ return (r.IsRectEmpty() || (r.Height() <= 0) || (r.Width() <= 0)); }
virtual BOOL IsFindValid(HTREEITEM);
BOOL IsLeftButtonUp();
BOOL IsOverAnchor(HTREEITEM hItem, CPoint point, CRect *pRect = NULL);
BOOL PreDisplayToolTip(BOOL bAlwaysRemoveHtml, CString& strToolTip);
LRESULT SendRegisteredMessage(UINT nMessage, HTREEITEM hItem, LPARAM lParam = 0);
int SetCheckParent(HTREEITEM hItem, int nCount);
void SetColors();
void SetHotItem(HTREEITEM hItem, UINT nFlags);
#ifdef XHTMLDRAGDROP
HCURSOR GetDragCursor();
BOOL IsCtrlDown();
BOOL IsDragCopy();
HTREEITEM MoveBranch(HTREEITEM hBranch,
HTREEITEM hNewParent,
HTREEITEM hAfter = TVI_LAST);
HTREEITEM MoveItem(HTREEITEM hItem,
HTREEITEM hNewParent,
HTREEITEM hAfter = TVI_LAST);
void SetDragCursor();
BOOL StartMoveBranch(HTREEITEM hItem,
HTREEITEM hNewParent,
HTREEITEM hAfter = TVI_LAST);
#endif // XHTMLDRAGDROP
//=============================================================================
// Generated message map functions
//=============================================================================
protected:
//{{AFX_MSG(CXHtmlTree)
afx_msg BOOL OnBeginlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnClick(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDestroy();
afx_msg BOOL OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSysColorChange();
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
#ifdef XHTMLDRAGDROP
afx_msg void OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult);
#endif // XHTMLDRAGDROP
#ifdef XHTMLTOOLTIPS
afx_msg void OnDisplayTooltip(NMHDR * pNMHDR, LRESULT * result);
#else
virtual afx_msg BOOL OnToolTipText(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
#endif // XHTMLTOOLTIPS
afx_msg BOOL OnSelchanged(NMHDR * pNMHDR, LRESULT * pResult);
afx_msg BOOL OnSelchanging(NMHDR * pNMHDR, LRESULT * pResult);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif //XHTMLTREE_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -