#pragma once #include "itembreakcurve.h" namespace NItem { class CItemExtendCurve : public CItemBreakCurve { public: CItemExtendCurve(CSigmaDoc * ppDoc); virtual ~CItemExtendCurve(void); void DoLButtonUp(CDC *pDC) override; void OnRButtonDown(UINT nFlags, CPoint point) override; BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) override; int ProcessCurve(CCurveEx* pCurve, COne* pOne, CPoint2D* pPoint) override; int GetSubMenu() override; BOOL OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) override; double maxExtendLength; int m_nExtendIdea; BOOL ExtendCurve(CCurveEx* pBaseCurve, CCurveEx* pExtendCurve, int nExtendIdea); int ExtendCurve(CPositionList& baseList); POSITION FindBaseCurve(CPtrList& list, CCurveEx* pCurve, BOOL bIsTail); bool m_bExtendCurveFinished = false; // 每次执行线段延伸,都会创建一个新的对象,所以不用担心它在上面执行时被置为 true }; };