treenode.h

来自「我自己整理的一些VC源代码」· C头文件 代码 · 共 117 行

H
117
字号
// TreeNode.h: interface for the CTreeNode class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TREENODE_H__E9217648_26B9_4A33_9FFB_22816A3A4BD0__INCLUDED_)
#define AFX_TREENODE_H__E9217648_26B9_4A33_9FFB_22816A3A4BD0__INCLUDED_

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

class CTwoForkTree;

class CTreeNode  
{
public:
	long IsPlugger();
	short Position();
	void DeleteRightChild();
	void DeleteLeftChild();
	long IsAgent();
	CTreeNode * ParentNode();
	CTreeNode * RightNode();
	CTreeNode * LeftNode();
	CTreeNode();
	virtual ~CTreeNode();

	friend CTwoForkTree;

protected:
	long m_lSequence;		// ID
	CString m_strSequence;	// ID
	CString m_strCode;		// 编号
	CString m_strName;		// 名称
	CString m_strGrade;		// 级别
	CString m_strInDate;	// 加入日期
	long m_lIntro;			// 介绍人
	long m_lCharge;			// 主管
	long m_lAgent;			// 代理商
	long m_lAgency;			// 代理处
	long m_lAdRate1;		// 一部广告余额
	long m_lAdRate2;		// 二部广告余额

	CTreeNode * m_pParentTreeNode;
	CTreeNode * m_pLeftTreeNode;
	CTreeNode * m_pRightTreeNode;

};

typedef struct StackNode
{
	CTreeNode * pTreeNode;
	int			nAccessCount;
} StackNode;

class CStack
{
public:
	CStack();
	~CStack();

public:
	void * Pop();
	long Push( void * pPointer );
	CTreeNode * PopTreeNode();
	BOOL IsEmptyStack();
	void ClearStack();
	long PushTreeNode( CTreeNode * pTreeNode );
	CPtrArray m_arStack;

};

class CTwoForkTree
{
public:
	CTwoForkTree();
	~CTwoForkTree();

public:
	int CompanyRetail( CString strStartDate, CString strEndDate );
	int CalcSupervisePrize( CString strStartDate, CString strEndDate, CListCtrl * pListCtrl );
	long RightAgentCount( CTreeNode *pTreeNode );
	long LeftAgentCount( CTreeNode * pTreeNode );
	void Contraction();
	long RightAgentCount( long lSequence );
	long LeftAgentCount( long lSequence );
	int DeptCount( CTreeNode * pTreeNode );
	long RightDeptAccount( long lSequence, CString strStartDate, CString strEndDate );
	long LeftDeptAccount( long lSequence, CString strStartDate, CString strEndDate );
	void ExpandAllItem( CTreeCtrl * pTreeCtrl );
	HTREEITEM FindItemFromData( CTreeCtrl * pTreeCtrl, DWORD dwData );
	void ToTreeCtrl( CTreeCtrl * pTreeCtrl, long lSequence = 0 );
	void RemoveAll();
	void ImportPlugger( BOOL bImportAgent = FALSE );
	long NodeCount();
	long RightAgentCount();
	long LeftAgentCount();
	CTreeNode * FindChildFromSequence( long lSequence );
	CTreeNode * GetRootNode();

protected:
	void RightOneGradeArray( CPtrArray &ptrArray, CTreeNode * pTreeNode );
	void LeftOneGradeArray( CPtrArray &ptrArray, CTreeNode * pTreeNode );
	int AgentRetail( int nAgent, CString strStartDate, CString strEndDate );
	int Welfare( CString strStartDate, CString strEndDate, CTreeNode * pTreeNode );
	int Aegis( CString strStartDate, CString strEndDate, CTreeNode *pTreeNode );
	int Subsidy( CString strStartDate, CString strEndDate, CTreeNode * pTreeNode, int nPer = 2 );
	void ImportAgent( long lSequence, CTreeNode * pParentNode );
	CTreeNode * FindNodeInStackFromSeq( long lSequence, CStack& stack );
	CTreeNode * FindChildFromSequence( long lSequence, CTreeNode * pSourceNode );
	CTreeNode * m_pTreeNode;
	int m_nCompanyRetail;

};

#endif // !defined(AFX_TREENODE_H__E9217648_26B9_4A33_9FFB_22816A3A4BD0__INCLUDED_)

⌨️ 快捷键说明

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