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

📄 vecdrawdoc.h

📁 这是一个VC++写的串口通信程序
💻 H
字号:
// VecDrawDoc.h : interface of the CVecDrawDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_VECDRAWDOC_H__6DC611C3_D353_48E9_8200_A5AE837C3F76__INCLUDED_)
#define AFX_VECDRAWDOC_H__6DC611C3_D353_48E9_8200_A5AE837C3F76__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

double Distance(CPoint p1,CPoint p2);
void DrawChoose(CDC *pDC,CPoint p1,CPoint p2,COLORREF color);
class CDraw:public CObject
{
protected:
	COLORREF m_ColorPen;
	int m_ColorBrush;
	int m_LineWide;
	int m_LineType;
	int m_Layer;
	int b_Delete;
	int m_ID_Only;
	
	
	DECLARE_SERIAL(CDraw);
public:
	int b_Select;
	CDraw () {};
	CDraw(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
	COLORREF GetColor();
	void SetColor(COLORREF color);
};
class CSave:public CDraw
{
protected:
	int VectorType;
    int Index;
	DECLARE_SERIAL(CSave);
	CSave(){};
public:
	CSave(int vT,int vI);
	int GetType();
	int GetIndex();
	virtual void Serialize(CArchive &ar);
};
class CLine:public CDraw
{
protected:
	CPoint m_FirstPoint;
	CPoint m_SecondPoint;
	DECLARE_SERIAL(CLine);
	CLine(){};
public:
	CLine(CPoint p1,CPoint p2);
	CLine(CPoint p1,CPoint p2,COLORREF color);
	CLine(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only,CPoint FirstPoint,CPoint SecondPoint);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
};

class CRectAngle:public CDraw
{
protected:
	CPoint m_FirstPoint;
	CPoint m_SecondPoint;
	DECLARE_SERIAL(CRectAngle);
	CRectAngle(){};
public:
	CRectAngle(CPoint p1,CPoint p2);
	CRectAngle(CPoint p1,CPoint p2,COLORREF color);
	CRectAngle(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only,CPoint FirstPoint,CPoint SecondPoint);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
};


class CCircle:public CDraw
{
protected:
	CPoint m_CentrePoint;	
	double m_Radius;
	DECLARE_SERIAL(CCircle);
	CCircle(){};
public:
	CCircle(CPoint CentrePoint,int R);
	CCircle(CPoint CentrePoint,int R,COLORREF color);
	CCircle(CPoint CentrePoint,CPoint Arc,COLORREF color);
	CCircle(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only,CPoint CentrePoint,int R);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
};

class CRectFill:public CDraw
{
protected:
	CPoint m_FirstPoint;
	CPoint m_SecondPoint;
	DECLARE_SERIAL(CRectFill);
	CRectFill(){};
public:
	CRectFill(CPoint p1,CPoint p2);
	CRectFill(CPoint p1,CPoint p2,COLORREF color);
	CRectFill(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only,CPoint FirstPoint,CPoint SecondPoint);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
};

class CText:public CDraw
{
protected:
	CPoint m_Postion;
	CString m_Str;
	DECLARE_SERIAL(CText);
	CText(){};
public:
	CText(CPoint p1,CString str);
	CText(CPoint p1,CString str,COLORREF color);
	CText(COLORREF ColorPen,int ColorBrush,int LineWide,int LineType,int Layer,int Delete,int ID_Only,CPoint p1,CString str);
	virtual void Draw(CDC *pDC,COLORREF color);
	virtual void CurDraw(CDC *pDC,COLORREF color);
	virtual bool SelectObject(CPoint pnt);
	virtual void Serialize(CArchive &ar);
	virtual double IsPoint(CPoint pnt);
	virtual void Offset(int x1,int y1);
};

/*
class CRectRound:public CDraw
{
protected:
	DECLARE_SERIAL(CRectRound);
	CRectRound(){};
public:
	virtual void Serialize(CArchive &ar);
};
class CRectRoundFill:public CDraw
{
protected:
	DECLARE_SERIAL(CRectRoundFill);
	CRectRoundFill(){};
public:
	virtual void Serialize(CArchive &ar);
};
class CCircleFill:public CDraw
{
protected:
	DECLARE_SERIAL(CCircleFill);
	CCircleFill(){};
public:
	virtual void Serialize(CArchive &ar);
};
*/


class CVecDrawDoc : public CDocument
{
protected: // create from serialization only
	CVecDrawDoc();
	DECLARE_DYNCREATE(CVecDrawDoc)
private:
	CTypedPtrArray<CObArray,CSave*>m_SaveArray;
	CTypedPtrArray<CObArray,CLine*>m_LineArray;	
	CTypedPtrArray<CObArray,CRectAngle*>m_RectArray;
//	CTypedPtrArray<CObArray,CRectRound*>m_RectRoundArray;
	CTypedPtrArray<CObArray,CCircle*>m_CircleArray;	
	CTypedPtrArray<CObArray,CRectFill*>m_RectFillArray;
//	CTypedPtrArray<CObArray,CRectRoundFill*>m_RectRoundFillArray;
//	CTypedPtrArray<CObArray,CCircleFill*>m_CircleFillArray;	
	CTypedPtrArray<CObArray,CText*>m_TextArray;	
// Attributes
public:
// Operations
public:
	void AddSave(int vT,int vI);
	CLine *AddLine(CPoint P1,CPoint P2);
	CLine *AddLine(CPoint p1,CPoint p2,COLORREF color);
	CRectAngle *AddRect(CPoint P1,CPoint P2);
	CRectAngle *AddRect(CPoint P1,CPoint P2,COLORREF color);
	CCircle *AddCircle(CPoint P1,int R);
	CCircle *AddCircle(CPoint p1,int R,COLORREF color);	
	CRectFill *AddRectFill(CPoint P1,CPoint P2);
	CRectFill *AddRectFill(CPoint P1,CPoint P2,COLORREF color);
	CText *AddText(CPoint P1,CString str);
	CText *AddText(CPoint P1,CString str,COLORREF color);


	CDraw *GetGraph(int vType,int index);
	CSave *GetSaveOrder(int index);
//	CLine *GetGraph(int Index,int vType);
	int GetGraphNumb(int vType);
	void DeleteSave(int vType,int index);
	void AddGraph(int vType,int index);
	int GetSaveSize();
	void Draw(CDC *pDC,int vType);
	void Draw(CDC *pDC,int vType,int vIndex);
	void SetMode(CDC *pDC);
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CVecDrawDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CVecDrawDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	int SerialFlag;

// Generated message map functions
protected:
	//{{AFX_MSG(CVecDrawDoc)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_VECDRAWDOC_H__6DC611C3_D353_48E9_8200_A5AE837C3F76__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -