📄 direction2doc.h
字号:
// direction2Doc.h : interface of the CDirection2Doc class
//
/////////////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#if !defined(AFX_DIRECTION2DOC_H__64F89F0D_3B0A_448A_A0AC_B572575385BD__INCLUDED_)
#define AFX_DIRECTION2DOC_H__64F89F0D_3B0A_448A_A0AC_B572575385BD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "direction2Doc.h"
class CBasepic:public CObject
{
protected:
DWORD m_x1, m_y1; //图坐标范围
BOOL selete;
public:
LOGFONT m_text; //字体式样字体大小
CString m_name; //标题
COLORREF m_color; //作图的默认颜色
CBasepic(){}
DECLARE_SERIAL(CBasepic)
public:
virtual CPoint Getmid(){CPoint point;point.x=m_x1;point.y=m_y1;return point;}
virtual void Setselete(BOOL a){selete=a;}
virtual void Setpoint(int x,int y){m_x1=m_x1+x; m_y1=m_y1+y;}
virtual void Serialize(CArchive& ar);
virtual void Draw(CDC *pDC){}
virtual CRect GetDimRect(){return NULL;} //获得包围的矩形
virtual int Gettype(){return 0;}
virtual CPoint GettextHW(){CPoint point;point.x=m_text.lfHeight;point.y=m_text.lfWidth;return point;}
};
////字体类 CText继承CBasepic 类
class CText:public CBasepic
{
protected:
// BOOL IsRect;
CText() {}
DECLARE_SERIAL(CText) ///序列化声名
public:
CText(int x1,int y1,CString name,LOGFONT text,COLORREF color);
virtual CRect GetDimRect();
virtual void Setpoint(int x,int y)
{
m_x1=m_x1+x;
m_y1=m_y1+y;
}
virtual void Draw(CDC *pDC);
virtual void Setselete(BOOL a)
{selete=a;
}
virtual int Gettype(){return 3;}
virtual void Serialize(CArchive& ar);
virtual CPoint GettextHW(){CPoint point;point.x=m_text.lfHeight+5;point.y=m_text.lfWidth*sizeof(m_name)+5;return point;}
};
////////////画直线的类
class CLine : public CBasepic
{
protected:
DWORD m_x2,m_y2; //另一个点
long m_zhi;
public:
int lindex1,lindex2; //矩形对象数组的索引
COLORREF m_linecolor;
DWORD linewidth ; //线宽
int m_linestyle;
CLine(){}
DECLARE_SERIAL(CLine) //序列化声明
public:
long GetZhi();
void SetZhi(long zhi);
CLine(int x1,int y1,CString name,LOGFONT text,COLORREF color,int x2,int y2,int index1,int index2,int width,COLORREF linecolor,int linestyle);
CRect GetDimRect();
virtual void Setselete(BOOL a)
{
selete=a;
}
CPoint Getindex(){CPoint point;point.x=lindex1;point.y=lindex2;return point;}
virtual void Setpoint(int x,int y,int index);
virtual void Draw(CDC *pDC);
virtual void Serialize(CArchive& ar);
virtual int Gettype(){return 1;}
};
////////矩形类CRect 继承 CBasepic
class CRectFill : public CBasepic
{
protected:
int Linenum; //存放相关直线的条数
int line[200]; //放直线的对象的索引,索引最多能放200个,也就是说能最多支持200条直线与矩形相关。
long m_zhi;
public:
int m_width,m_height; //图形的长宽
COLORREF m_rectcolor;
COLORREF m_rectfillcolor;
CRectFill(){}
DECLARE_SERIAL(CRectFill)
public:
long GetZhi();
void SetZhi(long zhi);
CRectFill(int x1,int y1,CString name,LOGFONT text,COLORREF color,int width,int height,COLORREF rectcolor,COLORREF rectfillcolor);
BOOL AddLine(int index);
BOOL DeleteLine(int index);
CRect GetDimRect();
CPoint Getmid();
CPoint GetHW();
virtual void Setselete(BOOL a )
{selete=a;
}
int Getline(int num);
virtual void Setpoint(int x,int y);
virtual void Draw(CDC *pDC);
virtual int Gettype(){return 2;}
virtual void Serialize(CArchive& ar);
int Getlinenum(){return Linenum;}
};
class CDirection2Doc : public CDocument
{
protected: // create from serialization only
CDirection2Doc();
DECLARE_DYNCREATE(CDirection2Doc)
CTypedPtrArray<CObArray, CBasepic *> m_CArray; // 对象的数组
// Attributes
public:
// Operations
public:
CBasepic *GetDraw(int index);
void AddDraw(CBasepic *pDraw) ; //增加对象无返回
int GetDrawnum(); //返回各对象的数目
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDirection2Doc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual void DeleteContents();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDirection2Doc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CDirection2Doc)
afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
afx_msg void OnEditClearall();
afx_msg void OnUpdateEditClearall(CCmdUI* pCmdUI);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DIRECTION2DOC_H__64F89F0D_3B0A_448A_A0AC_B572575385BD__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -