DrawTool.h
上传用户:seaboy_04
上传日期:2013-02-24
资源大小:284k
文件大小:2k
源码类别:

其他行业

开发平台:

Visual C++

  1. // DrawTool.h: interface for the CDrawTool class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_DRAWTOOL_H__67B343D6_9A89_4CAD_A4B9_2EEF72C5EF10__INCLUDED_)
  5. #define AFX_DRAWTOOL_H__67B343D6_9A89_4CAD_A4B9_2EEF72C5EF10__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "drawobj.h"
  10. class CDrawView;
  11. enum DrawShape
  12. {
  13. selection,
  14. line,
  15. rect,
  16. roundRect,
  17. ellipse,
  18.     circle,
  19. poly
  20. };
  21. class CDrawTool  
  22. {
  23. // Constructors
  24. public:
  25. CDrawTool(DrawShape nDrawShape);
  26. // Overridables
  27. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  28. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  29. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  30. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  31. virtual void OnEditProperties(CDrawView* pView);
  32. virtual void OnCancel();
  33. // Attributes
  34. DrawShape m_drawShape;
  35. static CDrawTool* FindTool(DrawShape drawShape);
  36. static CPtrList c_tools;
  37. static CPoint c_down;
  38. static UINT c_nDownFlags;
  39. static CPoint c_last;
  40. static DrawShape c_drawShape;
  41. };
  42. class CSelectTool : public CDrawTool
  43. {
  44. // Constructors
  45. public:
  46. CSelectTool();
  47. // Implementation
  48. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  49. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  50. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  51. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  52. virtual void OnEditProperties(CDrawView* pView);
  53. };
  54. class CRectTool : public CDrawTool
  55. {
  56. // Constructors
  57. public:
  58. CRectTool(DrawShape drawShape);
  59. // Implementation
  60. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  61. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  62. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  63. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  64. };
  65. #endif // !defined(AFX_DRAWTOOL_H__67B343D6_9A89_4CAD_A4B9_2EEF72C5EF10__INCLUDED_)