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

📄 tool.h

📁 在PDA中的画图程序
💻 H
字号:
// Tool.h: interface for the CTool class.
//
#include "shape.h"
#include "DrawInPDAView.h"

class CDrawInPDAView;
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TOOL_H__484914A8_E858_42B0_B25A_8413696DD309__INCLUDED_)
#define AFX_TOOL_H__484914A8_E858_42B0_B25A_8413696DD309__INCLUDED_

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

enum eSelectMode
{
	smNone,
	smSelect,
	smMove	
};


enum eToolType
{
	ttNone,				// 空
	ttSelect,			// 选择
	ttDrawPoint,		// 绘制点
	ttDrawLine,			// 绘制线(两端点)
	ttDrawRectangle,	// 绘制矩形
	ttDrawPolygon,		// 绘制多边形区域
	ttDrawPoly,
	ttZoom,
	ttZoomIn,
	ttMove
};

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

class CTool  
{
public:
	CTool();
	virtual ~CTool();
	virtual void OnCancel();
	virtual void OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonDown(CDrawInPDAView* pView,UINT nFlags,const CPoint& point);
	CTool(eToolType ATool);
public:
	static enum eToolType c_CurrentTool;
	static CPoint c_LastPoint;
	static UINT c_nDownFlags;
	static CPoint c_DownPoint;
	static CPtrList c_ToolList;
    static CTool *FindTool(enum eToolType ATool );
    enum eToolType m_Tool;

};

class CToolPoly : public CTool  
{
public:
	bool bFirstClick;
	CShapePoly* m_Poly;
	virtual void  OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonDown(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	CToolPoly();
	virtual ~CToolPoly();

};

class CToolSelect : public CTool
{
// Constructors
public:
	CToolSelect();
	virtual void OnLButtonDown(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	bool m_bSecondClick;
};

////////////////
class CToolPoint : public CTool  
{
public:
	CShapePoint* m_Point;
	virtual void OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonDown(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	CToolPoint();
	~CToolPoint();
};

///////
class CToolLine : public CTool  
{
public:
	bool bFirstClick;
	CShapeLine* m_Line;
	virtual void OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnLButtonDown(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	CToolLine();
	~CToolLine();

};

///////////////////////////
class CToolRectangle : public CTool  
{
public:
	long m_nClick;
	CShapeRectangle* m_pShape;
	virtual void  OnLButtonDblClk(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonUp(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void OnMouseMove(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	virtual void  OnLButtonDown(CDrawInPDAView* pView, UINT nFlags, const CPoint& point);
	CToolRectangle();
	virtual ~CToolRectangle();

};






#endif // !defined(AFX_TOOL_H__484914A8_E858_42B0_B25A_8413696DD309__INCLUDED_)

⌨️ 快捷键说明

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