⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 direction2doc.h

📁 数据结构求最短路径vc++ 实现手动作图
💻 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 + -