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/Module/GeoSigmaDraw/ItemCopyAsImageEx.h

61 lines
1.7 KiB
C++

#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;
};
}