#pragma once #include "ItemRectTracker.h" #include "itemGrid.h" #include ".\itemproportion.h" namespace NItem { class CItemCopyAsImageEx:public CItemRectTracker { public: CItemCopyAsImageEx(CSigmaDoc* ppDoc); virtual ~CItemCopyAsImageEx(); virtual int SetRange(CRect rec); void GetRange(CRect8* rec); void Clear(); void OnDraw(CXyDC* pXyDC, CDC* pDC) override; void Refresh(CDC* pDC); virtual void TraceEnd(); void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override; void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk) override; int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override; int HitTest(CPoint point); virtual void TrackHandle(int nHandle, CPoint point, CDC * pDCScreen); //按选择区域截图 virtual bool CopyRectToClipboard(double scaleFactor); ////截取整个绘图窗口 //void CopyWindowToClipboard(CRect windowRect); ////截取全图.相当于先全图缩放.在截取整个绘图窗口 //void CopyAllToClipboard(void); void SetProportionVisible(bool visible); void SetNetGridVisible(bool visible); void SetNetGridParameter(RectangularCSGridData* pData); void GetTrueRect(CRect8* lpTrueRect); int GetPropotionData(ProportionData * data); void SetPropotionData(ProportionData * data); protected: virtual void CopyToClipboard(CRect8 & rect, double scaleFactor); // 绘制阴影 virtual void DrawShadow(CDC* pDC, CRect& rectScreen, CRect rectCenter); // 绘制坐标框 void DrawNetGrid(CDC* pDC); // 绘制比例尺 void DrawScaleBar(CDC* pDC); protected: CRect m_range; CRect8 m_coorRect; //CHSimpleTracker * m_pTracker; COLORREF m_color; CProportion m_Proportion; bool m_ShowProportion; CGridding m_Net; bool m_ShowNetGrid; }; }