📄 fileserializedoc.h
字号:
// FileSerializeDoc.h : interface of the CFileSerializeDoc class
class CStroke : public CObject
{
public:
CStroke(UINT nPenWidth); //构造函数
protected:
CStroke(); //缺省构造函数,序列化要用的
DECLARE_SERIAL(CStroke) //序列化支持宏
// Attributes
public:
UINT m_nPenWidth; //笔的宽度
CArray<CPoint,CPoint> m_pointArray; //一系列连接起来的点
CRect m_rectBounding; //包含该线条的最小矩形
// Operations
public:
BOOL DrawStroke(CDC* pDC); //画线
void FinishStroke();
CRect& GetBoundingRect() { return m_rectBounding; }
virtual void Serialize(CArchive& ar); //继承了CObject的特性:序列化
};
class CFileSerializeDoc : public CDocument
{
protected:
// 序列化时使用
CFileSerializeDoc();
DECLARE_DYNCREATE(CFileSerializeDoc)
// Attributes
public:
UINT m_nPenWidth; // 当前用户选择的画笔宽度
CPen m_penCur; // 当前用户选择的画笔
BOOL m_bThickPen; // 如果是粗笔就是TRUE
UINT m_nThinWidth; // 细笔宽度
UINT m_nThickWidth; // 粗笔宽度
CSize m_sizeDoc; // 文档的长宽大小
CTypedPtrList<CObList,CStroke*> m_strokeList; //定义了一个线条指针的链表
// Operations
public:
CPen* GetCurrentPen() { return &m_penCur; }
CSize GetDocSize() { return m_sizeDoc; }
CStroke* NewStroke();
void InitDocument();
void ReplacePen();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CFileSerializeDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
virtual void DeleteContents();
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CFileSerializeDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CFileSerializeDoc)
afx_msg void OnEditClearAll();
afx_msg void OnPenThickOrThin();
afx_msg void OnUpdatePenThickOrThin(CCmdUI* pCmdUI);
afx_msg void OnUpdateEditClearAll(CCmdUI* pCmdUI);
afx_msg void OnPenWidths();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -