mainview.h
上传用户:biuytresa
上传日期:2007-12-07
资源大小:721k
文件大小:5k
源码类别:

DNA

开发平台:

Visual C++

  1. // mainview.h : interface of the CMainView class
  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. class CRectItem;
  13. class CMainView : public CScrollView
  14. {
  15. protected: // create from serialization only
  16. CMainView();
  17. DECLARE_DYNCREATE(CMainView)
  18. // Attributes
  19. public:
  20. CMainDoc* GetDocument()
  21. {
  22. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMainDoc)));
  23. return (CMainDoc*) m_pDocument;
  24. }
  25. CRectItem* GetSelection() const
  26. { return m_pSelection; } // Just the top-most window
  27. // set bSafeSelect to TRUE when there is a chance that an inplace
  28. // active item could be deactivated before finishing
  29. void SetSelection(CRectItem* pNewSel, BOOL bSafeSelect = FALSE);
  30. // Operations
  31. public:
  32. CRectItem* DoPasteItem(BOOL bLink, COleDataObject* pDataObject,
  33. CPoint* pPoint, CLIPFORMAT cfFormat = 0);
  34. void ClientToDoc(CRect &rc);
  35. void DocToClient(CRect &rc);
  36. void ClientToDoc(CPoint &pt);
  37. void DocToClient(CPoint &pt);
  38. void ClientToDoc(CSize &sz);
  39. void DocToClient(CSize &sz);
  40. void UpdateActiveItem();
  41. // Implementation
  42. protected:
  43. BOOL m_bInDrag;
  44. CRectItem* m_pSelection;
  45. COleDropTarget m_dropTarget;
  46. CPoint m_dragPoint;
  47. CSize m_dragSize;
  48. CSize m_dragOffset;
  49. DROPEFFECT m_prevDropEffect;
  50. static CLIPFORMAT m_cfObjectDescriptor;
  51. static CBrush NEAR m_brHatch;
  52. CRectItem* GetHitItem(CPoint point);
  53. BOOL GetObjectInfo(COleDataObject* pDataObject,
  54. CSize* pSize, CSize* pOffset);
  55. void DoPasteNative(COleDataObject* pDataObject, CPoint* pPoint,
  56. CRectItem* pItem);
  57. void DoPasteStandard(BOOL bLink, COleDataObject* pDataObject,
  58. CPoint* pPoint, CRectItem* pItem, CLIPFORMAT cfFormat = 0);
  59. public:
  60. virtual ~CMainView();
  61. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  62. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  63. virtual void OnInitialUpdate();
  64. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  65. #ifdef _DEBUG
  66. virtual void AssertValid() const;
  67. virtual void Dump(CDumpContext& dc) const;
  68. #endif
  69. // special scroll handling
  70. virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll = TRUE);
  71. // drag drop implementation
  72. virtual BOOL OnDrop(COleDataObject* pDataObject,
  73. DROPEFFECT dropEffect, CPoint point);
  74. virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject,
  75. DWORD grfKeyState, CPoint point);
  76. virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject,
  77. DWORD grfKeyState, CPoint point);
  78. virtual void OnDragLeave();
  79. // Printing support
  80. protected:
  81. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  82. // OLE Client support
  83. virtual BOOL IsSelected(const CObject* pDocItem) const;
  84. BOOL DoCopySelection();
  85. void SetupTracker(CRectTracker* pTracker, CRectItem* pItem,
  86. CRect* pTrueRect = NULL);
  87. void InvalidateItem(CRectItem* pItem);
  88. // Generated message map functions
  89. protected:
  90. //{{AFX_MSG(CMainView)
  91. afx_msg void OnPaste();
  92. afx_msg void OnPasteLink();
  93. afx_msg void OnInsertObject();
  94. afx_msg void OnUpdateEditMenu(CCmdUI* pCmdUI);
  95. afx_msg void OnEditClear();
  96. afx_msg void OnEditCopy();
  97. afx_msg void OnEditCut();
  98. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  99. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  100. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  101. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  102. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  103. afx_msg void OnSetFocus(CWnd* pOldWnd);
  104. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  105. afx_msg void OnSize(UINT nType, int cx, int cy);
  106. afx_msg void OnObjectDisplayContent();
  107. afx_msg void OnUpdateObjectDisplayContent(CCmdUI* pCmdUI);
  108. afx_msg void OnObjectDisplayAsIcon();
  109. afx_msg void OnUpdateObjectDisplayAsIcon(CCmdUI* pCmdUI);
  110. afx_msg void OnPasteSpecial();
  111. afx_msg void OnUpdateEditClone(CCmdUI* pCmdUI);
  112. afx_msg void OnEditClone();
  113. afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  114. afx_msg void OnObjectResetsize();
  115. afx_msg void OnCancelInplace();
  116. afx_msg void OnDestroy();
  117. afx_msg void OnUpdateOleEditProperties(CCmdUI* pCmdUI);
  118. afx_msg void OnOleEditProperties();
  119. afx_msg void OnUpdateOleChangeSource(CCmdUI* pCmdUI);
  120. afx_msg void OnOleChangeSource();
  121. //}}AFX_MSG
  122. DECLARE_MESSAGE_MAP()
  123. };