📄 drawdoc.h
字号:
// drawDoc.h : interface of the CDrawDoc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_DRAWDOC_H__CA9C4914_07B2_11D4_B0C9_5254AB167DFC__INCLUDED_)
#define AFX_DRAWDOC_H__CA9C4914_07B2_11D4_B0C9_5254AB167DFC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "stdafx.h"
class CDrawBase : public CObject
{
protected:
COLORREF m_Color; //图形颜色
DWORD m_X1, m_Y1, m_X2, m_Y2;//包围矩形
CDrawBase() {}
DECLARE_SERIAL(CDrawBase) //序列化声明
public:
CRect GetDimRect(); //获得包围矩形
virtual void Draw(CDC *pDC) {}
virtual void Serialize(CArchive& ar);
};
class CLine : public CDrawBase
{
protected:
DWORD m_Thickness; //直线的线宽
CLine() {}
DECLARE_SERIAL(CLine) //序列化声明
public:
CLine(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);
virtual void Draw(CDC *pDC);
virtual void Serialize(CArchive& ar);
};
class CRectangle : public CDrawBase
{
protected:
DWORD m_Thickness; //矩形的线宽
CRectangle() {}
DECLARE_SERIAL(CRectangle) //序列化声明
public:
CRectangle(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);
virtual void Draw(CDC *pDC);
virtual void Serialize(CArchive& ar);
};
class CRectFill : public CDrawBase
{
protected:
CRectFill() {}
DECLARE_SERIAL(CRectFill) //序列化声明
public:
CRectFill(int X1, int Y1, int X2, int Y2, COLORREF Color);
virtual void Draw(CDC *pDC);
};
class CRectRound : public CDrawBase
{
protected:
DWORD m_Thickness; //圆角矩形的线宽
CRectRound() {}
DECLARE_SERIAL(CRectRound) //序列化声明
public:
CRectRound(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);
virtual void Draw(CDC *pDC);
virtual void Serialize(CArchive& ar);
};
class CRectRoundFill : public CDrawBase
{
protected:
CRectRoundFill() {}
DECLARE_SERIAL(CRectRoundFill) //序列化声明
public:
CRectRoundFill(int X1, int Y1, int X2, int Y2, COLORREF Color);
virtual void Draw(CDC *pDC);
};
class CCircle : public CDrawBase
{
protected:
DWORD m_Thickness; //圆的线宽
CCircle() {}
DECLARE_SERIAL(CCircle)//序列化声明
public:
CCircle(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);
virtual void Serialize(CArchive& ar);
virtual void Draw(CDC *pDC);
};
class CCircleFill : public CDrawBase
{
protected:
CCircleFill() {}
DECLARE_SERIAL(CCircleFill)//序列化声明
public:
CCircleFill(int X1, int Y1, int X2, int Y2, COLORREF Color);
virtual void Draw(CDC *pDC);
};
class CText : public CDrawBase
{
protected:
LOGFONT m_lf;
CString m_String;
CText() {}
DECLARE_SERIAL(CText) //序列化声明
public:
CText(int X1, int Y1, int X2, int Y2, COLORREF Color, LOGFONT lf, CString str);
virtual void Draw(CDC *pDC);
virtual void Serialize(CArchive& ar);
};
class CDrawDoc : public CDocument
{
protected:
CTypedPtrArray<CObArray, CDrawBase *> m_DrawArray;
public:
void AddDraw(CDrawBase *pDraw);
CDrawBase *GetDraw(int Index);
int GetNumDraws();
protected: // create from serialization only
CDrawDoc();
DECLARE_DYNCREATE(CDrawDoc)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDrawDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual void DeleteContents();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDrawDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CDrawDoc)
afx_msg void OnEditClearAll();
afx_msg void OnUpdateEditClearAll(CCmdUI* pCmdUI);
afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(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_DRAWDOC_H__CA9C4914_07B2_11D4_B0C9_5254AB167DFC__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -