drawdoc.h

来自「《Visual C++.NET MFC类库应用详解》程序实例」· C头文件 代码 · 共 80 行

H
80
字号
// DrawDoc.h :  CDrawDoc 类的接口
//


#pragma once

class CLine : public CObject
{
public:
     CPoint m_pStart;
     CPoint m_pEnd;
     int m_pWidth;
     int m_pStyle;
     COLORREF m_pColor;
     CLine(){}
     DECLARE_SERIAL(CLine)
public:
     CLine(CPoint pStart,CPoint pEnd,int Width,int Style,COLORREF Color);
     void Drawing(CDC *pDC);
     virtual void Serialize(CArchive &ar);
};


class CDrawDoc : public CDocument
{
protected: // 仅从序列化创建
	CDrawDoc();
	DECLARE_DYNCREATE(CDrawDoc)
protected:
   	CObArray m_ObArray;
public:
    void AddDraw(CPoint pStart,CPoint pEnd,int Width,int Style,COLORREF Color);
   	CLine *GetDraw(int index);
    int GetDrawNumber();
    CObArray m_SelectObArray;//存储所选图形的对象数组
// 属性
public:
    int m_pWidth;
    int m_pStyle;
    COLORREF m_pColor;
    CRect m_SelectRect;//所选图形的最大矩形外框
    bool IsSelect;//标志变量
// 操作
public:

// 重写
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);

// 实现
public:
	virtual ~CDrawDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// 生成的消息映射函数
protected:
	DECLARE_MESSAGE_MAP()
public:
	virtual void DeleteContents();
	afx_msg void OnEditUndo();
	afx_msg void OnUpdateEditUndo(CCmdUI *pCmdUI);
	afx_msg void OnOptionsPen();
	afx_msg void OnOptionsColor();
	afx_msg void OnEditCopy();
	afx_msg void OnUpdateEditCopy(CCmdUI *pCmdUI);
	afx_msg void OnEditPaste();
	afx_msg void OnUpdateEditPaste(CCmdUI *pCmdUI);
	afx_msg void OnEditSelect();
	afx_msg void OnEditDraw();
	afx_msg void OnEditSelectall();
};


⌨️ 快捷键说明

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