#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 m_SubObjectArray; }; }//namespace #endif // CompositeDrawingObject_h__