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 + -
显示快捷键?