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

📄 persistenttreectrl.h

📁 两个有关xml文件的操作类
💻 H
字号:

// PersistentTreeCtrl.h v1.0
// Purpose: a treectrl can save& load it's item text& images.
// by hujinshan @2004-11-9 9:34:21

#if !defined(AFX_PERSISTENTTREECTRL_H__918F1BD9_E79C_4FAC_A8F8_A9ABA8C2E976__INCLUDED_)
#define AFX_PERSISTENTTREECTRL_H__918F1BD9_E79C_4FAC_A8F8_A9ABA8C2E976__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "XMLFile.h"
#include <string>
using std::string;
/////////////////////////////////////////////////////////////////////////////
// CPersistentTreeCtrl window

//!  CPersistentTreeCtrl class 保存、装载内容到XML文件 
/*!
  可用来保存、装载标签到XML文件的树控件。
*/
class CPersistentTreeCtrl : public CTreeCtrl
{
	
// Construction
public:
	CPersistentTreeCtrl();

// Attributes
public:	

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CPersistentTreeCtrl)
	//}}AFX_VIRTUAL

// Implementation
public:
	///fill the tree by nonsensical test items
	void InitTestItems();
	///get all items' label in a string broke with '>'
	string GetAllItemText();

	///load from a XML file
	bool Load(const char* filename, const char* tree_name="TreeName", bool bImage=false);
	///save to a XML file
	bool Save(const char* filename, const char* tree_name="TreeName", bool bImage=false);
	
	///delete a tree record form the specific xml file
	void DeleteTreeRecord(const char* filename, const char* tree_name);

	virtual ~CPersistentTreeCtrl();

	void SetImage(UINT id_bitmap);
	/// Generated message map functions
protected:
	void LoadItems(HTREEITEM hItem, MSXML2::IXMLDOMNodePtr& pNode, bool bImage=false);
	HTREEITEM SaveItems(void* pXmlfile,const char* item_name="TreeRoot",
		HTREEITEM hItem=NULL, string str_parent="", bool bImage=false);

	HTREEITEM TraverseItems(HTREEITEM hItem=NULL);

	bool HasDuplicate();
	HTREEITEM HasDuplicate(HTREEITEM hItem, bool& bDuplicate);//process total tree
	bool HasDuplicateChild(HTREEITEM hItem);//only process a item

	string str_msg;
	CImageList m_imagelist;

	//{{AFX_MSG(CPersistentTreeCtrl)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

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

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

#endif // !defined(AFX_PERSISTENTTREECTRL_H__918F1BD9_E79C_4FAC_A8F8_A9ABA8C2E976__INCLUDED_)

// end of file 

⌨️ 快捷键说明

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