drawtool.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // drawtool.h - interface for CDrawTool and derivatives
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #ifndef __DRAWTOOL_H__
  21. #define __DRAWTOOL_H__
  22. #include "drawobj.h"
  23. class CDrawView;
  24. enum DrawShape
  25. {
  26. selection,
  27. line,
  28. rect,
  29. roundRect,
  30. ellipse,
  31. poly
  32. };
  33. class CDrawTool
  34. {
  35. // Constructors
  36. public:
  37. CDrawTool(DrawShape nDrawShape);
  38. // Overridables
  39. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  40. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  41. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  42. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  43. virtual void OnEditProperties(CDrawView* pView);
  44. virtual void OnCancel();
  45. // Attributes
  46. DrawShape m_drawShape;
  47. static CDrawTool* FindTool(DrawShape drawShape);
  48. static CPtrList c_tools;
  49. static CPoint c_down;
  50. static UINT c_nDownFlags;
  51. static CPoint c_last;
  52. static DrawShape c_drawShape;
  53. };
  54. class CSelectTool : public CDrawTool
  55. {
  56. // Constructors
  57. public:
  58. CSelectTool();
  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. virtual void OnEditProperties(CDrawView* pView);
  65. };
  66. class CRectTool : public CDrawTool
  67. {
  68. // Constructors
  69. public:
  70. CRectTool(DrawShape drawShape);
  71. // Implementation
  72. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  73. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  74. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  75. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  76. };
  77. class CPolyTool : public CDrawTool
  78. {
  79. // Constructors
  80. public:
  81. CPolyTool();
  82. // Implementation
  83. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  84. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  85. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  86. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  87. virtual void OnCancel();
  88. CDrawPoly* m_pDrawObj;
  89. };
  90. ////////////////////////////////////////////////////////////////////////////
  91. #endif // __DRAWTOOL_H__