DRAWTOOL.H
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:3k
源码类别:

界面编程

开发平台:

Visual C++

  1. // drawtool.h - interface for CDrawTool and derivatives
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #ifndef __DRAWTOOL_H__
  13. #define __DRAWTOOL_H__
  14. #include "drawobj.h"
  15. class CDrawView;
  16. enum DrawShape
  17. {
  18. selection,
  19. line,
  20. rect,
  21. roundRect,
  22. ellipse,
  23. poly
  24. };
  25. class CDrawTool
  26. {
  27. // Constructors
  28. public:
  29. CDrawTool(DrawShape nDrawShape);
  30. // Overridables
  31. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  32. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  33. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  34. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  35. virtual void OnEditProperties(CDrawView* pView);
  36. virtual void OnCancel();
  37. // Attributes
  38. DrawShape m_drawShape;
  39. static CDrawTool* FindTool(DrawShape drawShape);
  40. static CPtrList c_tools;
  41. static CPoint c_down;
  42. static UINT c_nDownFlags;
  43. static CPoint c_last;
  44. static DrawShape c_drawShape;
  45. };
  46. class CSelectTool : public CDrawTool
  47. {
  48. // Constructors
  49. public:
  50. CSelectTool();
  51. // Implementation
  52. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  53. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  54. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  55. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  56. virtual void OnEditProperties(CDrawView* pView);
  57. };
  58. class CRectTool : public CDrawTool
  59. {
  60. // Constructors
  61. public:
  62. CRectTool(DrawShape drawShape);
  63. // Implementation
  64. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  65. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  66. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  67. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  68. };
  69. class CPolyTool : public CDrawTool
  70. {
  71. // Constructors
  72. public:
  73. CPolyTool();
  74. // Implementation
  75. virtual void OnLButtonDown(CDrawView* pView, UINT nFlags, const CPoint& point);
  76. virtual void OnLButtonDblClk(CDrawView* pView, UINT nFlags, const CPoint& point);
  77. virtual void OnLButtonUp(CDrawView* pView, UINT nFlags, const CPoint& point);
  78. virtual void OnMouseMove(CDrawView* pView, UINT nFlags, const CPoint& point);
  79. virtual void OnCancel();
  80. CDrawPoly* m_pDrawObj;
  81. };
  82. ////////////////////////////////////////////////////////////////////////////
  83. #endif // __DRAWTOOL_H__