⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lefttreeview.h

📁 vc++的技巧查找方式源代码。
💻 H
字号:
#if !defined(AFX_LEFTTREEVIEW_H__51A6DD65_F2E8_4315_B124_0E2763FFA324__INCLUDED_)
#define AFX_LEFTTREEVIEW_H__51A6DD65_F2E8_4315_B124_0E2763FFA324__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// LeftTreeView.h : header file
//
#include <afxcview.h>
#include <afxtempl.h>
#include "MainFrm.h"
#include "SkillBookView.h"
#include "ADO.h"

typedef struct _TREEINFO
{
	int nType;
	int nTag;
	int nDeleted;
}TREEINFO;

/////////////////////////////////////////////////////////////////////////////
// CLeftTreeView view

class CLeftTreeView : public CTreeView
{
private:
	BOOL CloseDatabaseConnection();
	BOOL InitDatabaseConnection();
	void AddChildNode(const int nType=0);
	void InitPara(void);
	void AddNode(const int nType=0);
	void ShowPopupMenu(CPoint& point);
	POSITION GetFreeItemTag(int &nTag);
	int GetItemTypeByTag(const int nTag);
	HTREEITEM GetNextItem(HTREEITEM hItem);
	int GetIndentLevel(HTREEITEM hItem);
	void SaveTreeToDB(void);
	void LoadTreeFromDB(void);
	void SetDeletedItemTagFlag(void);
	void AddRootNode(void);
	BOOL SaveArticleByTreeItemTag(const int nTag);
	BOOL ShowArticleByTreeItemTag(const int nTag);

	HTREEITEM CopyBranch(HTREEITEM htiBranch,HTREEITEM htiNewParent,HTREEITEM htiAfter);
	HTREEITEM CopyItem(HTREEITEM hItem,HTREEITEM htiNewParent,HTREEITEM htiAfter);
private:
	CADO m_ADO;
	CList <TREEINFO, TREEINFO> m_TreeInfoList;
	CList <int, int> m_SelectedItemTagList;
	CTreeCtrl	*m_pTreeSkill;
	CImageList	m_imglstTree;

	int m_nCurrentSelTag;
	BOOL m_bEnableAddItem;

	UINT          m_TimerTicks;      //处理滚动的定时器所经过的时间
	UINT          m_nScrollTimerID;  //处理滚动的定时器
	CPoint        m_HoverPoint;      //鼠标位置
	UINT          m_nHoverTimerID;   //鼠标敏感定时器
	DWORD         m_dwDragStart;     //按下鼠标左键那一刻的时间
	BOOL          m_bDragging;       //标识是否正在拖动过程中
	CImageList*   m_pDragImage;      //拖动时显示的图象列表
	HTREEITEM     m_hItemDragS;      //被拖动的标签
	HTREEITEM     m_hItemDragD;      //接受拖动的标签

	BOOL m_bCanEditLabel;

	CBitmap m_bitmap;
protected:
	CLeftTreeView();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CLeftTreeView)

// Attributes
public:

// Operations
public:
	void SaveCurrentArticle(void);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CLeftTreeView)
	public:
	virtual void OnInitialUpdate();
	protected:
	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~CLeftTreeView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
protected:
	//{{AFX_MSG(CLeftTreeView)
	afx_msg void OnDestroy();
	afx_msg void OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnKeydown(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnMenuDelete();
	afx_msg void OnMenuAddnode();
	afx_msg void OnMenuAddchildnode();
	afx_msg void OnMenuAddarticle();
	afx_msg void OnMenuAddchildarticle();
	afx_msg void OnUpdateMenuAddchildarticle(CCmdUI* pCmdUI);
	afx_msg void OnUpdateMenuAddchildnode(CCmdUI* pCmdUI);
	afx_msg void OnMenuAddrootnode();
	afx_msg void OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnBeginlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnMenuRename();
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LEFTTREEVIEW_H__51A6DD65_F2E8_4315_B124_0E2763FFA324__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -