📄 elementmanager.h
字号:
// ElementManager.h: interface for the CElementManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ELEMENTMANAGER_H__4B4062A9_9124_442C_8795_0B66A449A080__INCLUDED_)
#define AFX_ELEMENTMANAGER_H__4B4062A9_9124_442C_8795_0B66A449A080__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
typedef void (*CALLBACKProElement)( CElementBase * pElement , void * pPrarm );
struct ElementXOrder
{
double KeyValue;
CElementBase * pElementBase;
};
enum eElementNextType
{
Element_Next_Only_Head = 0,
Element_Next_All,
};
enum eAppendElementType
{
Append_Element_All = 0,
Append_Element_Only_Son,
Append_Element_Nont,
};
class CElementArray
{
public:
struct Head
{
CElementArray * pHeadElementBase;
CElementArray * pNextChildElementBase;
CElementArray * pNextBrotherElementBase;
CElementArray * pPreviousElementBase;
} m_h;
CElementBase * m_pElementBase;
CElementArray * SearchElement( CRect2D & rect , eElementSearchType SearchType );
//是元素的创建者
BOOL AddElement( CElementBase * pElementBase );
//不是元素的创建者
BOOL InsertElement( CElementBase * pElementBase );
//删除元素
BOOL RemoveElement( CElementBase * pElementBase );
//清除内存
void Free();
//回调每一个元素
void ProElement( CALLBACKProElement * pCallBack );
//获取列表下一个元素
CElementArray * GetElementNext( eElementNextType eNextType = Element_Next_All);
//合并元素数组
void Append( CElementArray * ElementArray , eAppendElementType isChengeMaster = Append_Element_Only_Son );
//加一个兄弟元素数组
void InsertBrotherEleArray ( CElementArray * pElmArray );
//加一个子元素数组
void InsertChildEleArray ( CElementArray * pElmArray );
//返回一个元素的范围,或一组元素的范围
//一个元素所表复杂元素
CRect2D GetEleArrayRect(BOOL isOne = TRUE );
protected:
void GetEleArrayChildRect( CRect2D & rect );
void GetEleArrayBrotherRect(CRect2D & rect );
};
class CElementManager
{
public:
CElementManager();
virtual ~CElementManager();
public:
BOOL AddElement( CElementBase * pElement );
BOOL RemoveElement( CElementBase * pElement );
CElementArray * SearchElement( CRect2D & rect , eElementSearchType SearchType );
OrderArray <double , CElementManager> m_OrderXElementArray;
};
#endif // !defined(AFX_ELEMENTMANAGER_H__4B4062A9_9124_442C_8795_0B66A449A080__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -