📄 elementbase.h
字号:
// ElementBase.h: interface for the CElementBase class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ELEMENTBASE_H__6DE942B7_2EFE_441B_ADAC_62075171D57B__INCLUDED_)
#define AFX_ELEMENTBASE_H__6DE942B7_2EFE_441B_ADAC_62075171D57B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
enum eSnapType
{
e_Snap_Contre,//圆心
e_Snap_Near,//最近点
e_Snap_KeyPoint,//关键点
e_Snap_MidPoint,//中点
e_Snap_PlumbPoint,//垂点
};
class CDrawCoord;
class CElementArray;
class CElementBase
{
public:
CElementBase();
virtual ~CElementBase();
public:
//计算元素区域
virtual CRect2D CalculateElementRect() =0;
//在图上绘元素
virtual void DrawElement(CDrawCoord * pDrawCorrd , DWORD DrawType) = 0;
//创建一个新自己
virtual CElementBase * CreateMe() = 0;
//保存
virtual BOOL Write (FILE * pf);
//读取
virtual BOOL Read (FILE * pf);
//面积
virtual double GetAera();
//-- {AddDecl: 407} region.unprotectedFunction [777..832]
virtual double GetLength();
//////////////////////////////////////////////////////////////////////////
//未完成的操作
//获取属性
//打散
virtual CElementArray * Break() = 0;
//切割
virtual Cut(CElementArray * pInsideArray
, CElementArray * pOutsideArray
, CRect2D & cutrect ) = 0;
//捕捉
virtual CPoint3D Snap ( eSnapType snaptype ) = 0;
//复制
virtual CElementBase * CopyMe () = 0;
//平移
//缩放
//旋转
virtual Transform ( CMatrix3D trans ) = 0;
//////////////////////////////////////////////////////////////////////////
//
//基本的操作
//
//////////////////////////////////////////////////////////////////////////
virtual wchar_t * GetClassName();
virtual void SetClassName( wchar_t * newClassName );
// 类索引
virtual int GetClassIndex();
virtual void SetClassIndex( int nIndex ) ;
//线型名
virtual wchar_t * GetLineName () ;
virtual void SetLineName( wchar_t * newLineName );;
//着色
virtual DWORD GetLineColor();
virtual void SetLineColor( DWORD dwColor );
//线宽
virtual UINT GetLineWidth();
virtual void SetLineWidth( UINT uWidth );
//层名
virtual wchar_t * GetLayerName ();
virtual void SetLayerName( wchar_t * newLayerName );
//编码
virtual UINT GetCode();
virtual void SetCode( UINT uCode );
//范围
virtual CRect2D GetElementRect ();
//属性
virtual void GetProperties( DWORD * m_GroupID , DWORD * m_AssociatedID
, DWORD * m_Smybol);
virtual void SetProperties( DWORD * m_GroupID , DWORD * m_AssociatedID
, DWORD * m_Smybol);
//状态
virtual BOOL GetHbitus ( eElementHbitus eHbitus );
virtual void SetHbitus ( eElementHbitus eHbitus , BOOL value );
public:
int m_ClassIndex;//动态
UINT m_LineStyleIndex;//动态
UINT m_LayerIndex;//动态
CRect2D m_Rect;
//在文件中的位置
UINT m_FileNumber;
DWORD m_FilePos;
protected:
wchar_t m_ClassName[MAX_CLASS_NAME_LENGTH];
//类索引
//线型名
wchar_t m_strLineName[MAX_LINE_NAME_LENGTH];
//层名
wchar_t m_LevelName[MAX_LAYER_NAME_LENGTH];
//编码
UINT m_nCode;
//颜色
DWORD m_LineColor;
//线宽
UINT m_LineWidth;
//组ID
DWORD m_GroupID;
//关联
DWORD m_AssociatedID;
//数据标志
//1关联、2显示、3锁定、4可捕捉、5删除、6修改过、7闭合、8填充
DWORD m_Smybol;
//元素私有数据
UINT m_UserBufferLength;
char * m_pUserBuffer;
};
#endif // !defined(AFX_ELEMENTBASE_H__6DE942B7_2EFE_441B_ADAC_62075171D57B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -