📄 figureobj.h
字号:
//FigureObj.h 图形元基类声明文档
#pragma once
#include "afx.h"
class CVisDrawDoc;
class CVisDrawView;
enum DrawObj{
// pointObj,
//lineObj,
//hlineObj, //水平直线
//vlineObj, //垂直线
//rectObj,
//roundRectObj,
//ellipseObj,
// circleObj,
// tparcObj,
//secarcObj,
//csearcObj,
//polylineObj,
// polygonObj,
// spliteObj,
// textObj,
//selectObj,
cheObj,
baoObj,
xiObj,
moObj,
tangObj,
zuanObj,
chongObj,
juObj,
zhongxinObj,
zhewanObj
};
class CFigureObj :
public CObject
{
//CFigureObj(void);
//~CFigureObj(void);
protected:
DECLARE_SERIAL(CFigureObj);
CFigureObj(void);
public:
//构造函数
CFigureObj(const CRect& position);
CFigureObj(DrawObj nDrawObj);
virtual ~CFigureObj(void);
//实现函数
//序列化
virtual void Serialize(CArchive& ar);
//绘制
virtual void Draw(CVisDrawView* pView = NULL, CDC* pDC = NULL);
//重新计算图形元外接矩形
virtual CRect CalcBounds(CVisDrawView* pView = NULL);
virtual int GetHandleCount();
virtual CPoint GetHandle(CVisDrawView* pView, int nHandle);
CRect GetHandleRect(int nHandleID, CVisDrawView* pView);
enum TrackerState { normal, selected, active };
void DrawTracker(CVisDrawView* pView, CDC* pDC, TrackerState state);
//操作函数
void Invalidate();
virtual void Remove();
virtual BOOL Intersects(CVisDrawView* pView, const CRect& rect);
virtual BOOL IsSelected(CVisDrawView* pView, const CPoint& point);
virtual int HitTest(CVisDrawView* pView, CPoint point, BOOL bSelected);
virtual void MoveHandleTo(int nHandle, CPoint point, CVisDrawView* pView = NULL);
virtual void MoveTo( CPoint delta, CVisDrawView* pView);
double PointToPoint(CPoint pt1, CPoint pt2);
virtual void OnEditProperties();
//属性成员
//图形元边界矩形,以逻辑坐标表示
CRect m_position;
CVisDrawDoc* m_pDocument;
//设定线的颜色
virtual void SetLineColor(COLORREF color);
//设定图形充填颜色
virtual void SetFillColor(COLORREF color);
virtual void SetIsBrush(BOOL bBrush){m_bBrush = bBrush;}
//诊断函数
#ifdef _DEBUG
void AssertValid();
#endif
//添加成员变量
protected:
BOOL m_bPen; //是否拾取了画笔
LOGPEN m_logpen; //画笔
BOOL m_bBrush; //是否拾取了画刷
LOGBRUSH m_logbrush; //画刷
public:
virtual void OnOpen(CVisDrawView* pView);
//鼠标句柄
DrawObj m_drawObj;
static DrawObj c_drawObj;
static CPtrList c_objs;
//CPoint lastPoint, prePoint;
static CFigureObj* FindObj(DrawObj drawObj); //对象查找
public:
CString m_MachineModel;
CString m_Jcxinghao;
};
typedef CTypedPtrList<CObList, CFigureObj*> CFigureObjList;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -