You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/SSBase/PlatBase/CompositeDrawingObject.h

45 lines
1.0 KiB
C++

#pragma once
#ifndef CompositeDrawingObject_h__
#define CompositeDrawingObject_h__
#include "DrawingObject.h"
namespace NChart
{
class AFX_EXT_CLASS CCompositeDrawingObject :
public CDrawingObject
{
public:
CCompositeDrawingObject(void);
virtual ~CCompositeDrawingObject(void);
//鼠标点击测试
virtual CDrawingObject* HitTest(const CPoint2D& ptHit);
virtual void SetVisible(bool visible);
virtual void Draw(CXyDC &dc);
virtual void SetRegion(CRect8 rcRegion);
virtual CRect8 GetRegion();
//子对象管理功能
virtual void AddDrawObject(CDrawingObject* pObject);
size_t GetChildrenCount();
CDrawingObject* GetChild(size_t iIndex);
void DeleteChild(size_t iIndex);
void DeleteChild(CDrawingObject* pObject);
void ClearObject();
CDrawingObject* GetSubObject(CString strObjectName);
//自动根据子对象的范围调整父对象的范围
virtual CRect8 CalObjectPos();
protected:
void UnionRect(CRect8& rcDest,CRect8 rcSource);
protected:
vector<CDrawingObject*> m_SubObjectArray;
};
}//namespace
#endif // CompositeDrawingObject_h__