📄 mt.h
字号:
// MT.h
#if !defined(__MT_H__)
#define __MT_H__
#define PI 3.1415926
#define ARROW_ANGLE (PI/10)
#define ARROW_LENGTH 20
#define CROSS_LENGTH 5
#define MAX_TEXT_LENGTH 100
#define RECORD_LENGTH sizeof(item)
#define ACTION_NOTHING -1
#define ACTION_ARROW 1
#define ACTION_CROSS 2
#define ACTION_TEXT 3
#define ACTION_DELETE 99
#define ACTION_SETSTANDARDLENGTH 201
#define ACTION_MEASRECTAREA 202
#define ACTION_MEASLINEDIST 203
#define ACTION_MEASLINEDIST2 204
#define ACTION_MEASANGLE 205
#define ACTION_MEASANGLE2 206
#define ACTION_MEASCHAOSANGLE 207
#define ACTION_MEASCHAOSANGLE2 208
#define ACTION_MEASCHAOSAREA 209
#define ACTION_MEASCHAOSAREA2 210
#define ACTION_MEASDELETE 299
#define TYPE_NOTHING 500
#define TYPE_LINE 501
#define TYPE_START 502
#define TYPE_END 503
#define TYPE_ARC 504
/*
typedef struct _CFPOINT
{
double x;
double y;
}CFPoint;
*/
// 节点结构
struct item
{
// 节点数据
int type;
double x0,y0,x1,y1;
union
{
double u_double[4];
int u_int[4];
POINT u_point[4];
char word[MAX_TEXT_LENGTH];
};
// 连接指针
item *next,*last;
};
class MT
{
public:
bool ReDraw(CDC *dc,long left,long top,double width,double height);
MT();
~MT();
bool Open(char *fn );
void AddNode(item *nitem);
void DelNode(item *nitem);
void Save(char *fn=NULL);
item *m_itemhead;
bool changed;
CString filename;
protected:
// Protected Datas
// Protected Functions
bool CleanUp();
bool GetArrow(CPoint start,CPoint end,CPoint &pa,CPoint &pb);
};
////////////////////////////////////////////////////////////////////////////////////////////////////
// 测量类
////////////////////////////////////////////////////////////////////////////////////////////////////
class MEAS
{
public:
void InsertArc(float x0,float y0,float x2,float y2,float x3,float y3);
BOOL HasSelected();
BOOL EraseSel();
item* m_itemhead;
item* m_selitem;
BOOL m_lighton;
CString m_FilePathName;
float m_left,m_top,m_width,m_height;
BOOL SetScale(float left,float top,float width,float height);
BOOL SelectItem(CPoint hp);
BOOL SelFlash(CDC *dc,BOOL off = FALSE);
BOOL SelectNone();
BOOL ReDraw(CDC *dc);
BOOL AddNode(item *node);
void BeginRecord(); // 开始记录数据
void EndRecord(); // 结束记录数据
void InsertLine(float x0,float y0,float x1,float y1);
BOOL LoadFile(char *argPathName);
BOOL SaveFile(char *argPathName = NULL);
MEAS();
~MEAS();
protected:
void CleanUp();
};
#endif // __MT_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -