SVRVIEW.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // svrview.h : interface of the CServerView 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. #include "svritem.h"
  13. class CServerView : public CScrollView
  14. {
  15. protected: // create from serialization only
  16. CServerView();
  17. DECLARE_DYNCREATE(CServerView)
  18. // Attributes
  19. public:
  20. CServerDoc* GetDocument()
  21. {
  22. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CServerDoc)));
  23. ASSERT_VALID(m_pDocument);
  24. return (CServerDoc*)m_pDocument;
  25. }
  26. void SetSelection(CServerNode* pNewSel, CDC* pDC);
  27. void SetSelection(CServerNode* pNewSel);
  28. // Operations
  29. public:
  30. void SetScrollInfo();
  31. BOOL SetZoomFactor(CSize zoomNum, CSize zoomDenom);
  32. void UpdateServerView();
  33. CSize CalcActualViewSize(CDC *pDC);
  34. CSize CalcActualItemSize(CServerNode* pItem, CDC *pDC);
  35. CSize CalcScaledViewSize();
  36. CSize CalcScaledItemSize(CServerNode* pItem);
  37. BOOL DoPasteItem(COleDataObject* pDataObject);
  38. void DoPasteNative(COleDataObject* pDataObject);
  39. void DoPasteText(COleDataObject* pDataObject);
  40. void DoImportText(CArchive &ar);
  41. void ScrollToItem(CServerNode* pItem, BOOL bScrollUp);
  42. void Locate(int cnt, BOOL bScrollUp);
  43. void InvalidateItem(CServerNode* pItem, CDC* pDC);
  44. void InvalidateItem(CServerNode* pItem);
  45. void ToggleSelectedItem();
  46. // Implementation
  47. public:
  48. virtual ~CServerView();
  49. virtual void OnDraw(CDC* pDC);
  50. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  51. virtual void OnInitialUpdate();
  52. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  53. #ifdef _DEBUG
  54. virtual void AssertValid() const;
  55. virtual void Dump(CDumpContext& dc) const;
  56. #endif
  57. protected:
  58. // drag/drop stuff
  59. COleDropTarget m_dropTarget;
  60. DROPEFFECT m_prevDropEffect;
  61. // current selection - store the node and the last drawn rect
  62. CServerNode* m_pSelectedNode;
  63. static CServerNode* NEAR m_pDragNode;
  64. // upper left of drawing
  65. CPoint m_ptStart;
  66. // zoom factor
  67. CSize m_zoomNum;
  68. CSize m_zoomDenom;
  69. // implementation helpers
  70. void SelectAtPoint(CPoint point, CPoint& pointHit);
  71. void DoBranch(CServerNode *pItem, BOOL bHide);
  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. // Generated message map functions
  80. protected:
  81. //{{AFX_MSG(CServerView)
  82. afx_msg void OnChangeName();
  83. afx_msg void OnAddNode();
  84. afx_msg void OnUpdateHasSel(CCmdUI* pCmdUI);
  85. afx_msg void OnEditCopy();
  86. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  87. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  88. afx_msg void OnImportText();
  89. afx_msg void OnViewZoomCustom();
  90. afx_msg void OnEditCut();
  91. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  92. afx_msg void OnEditPaste();
  93. afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  94. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  95. afx_msg void OnEditClear();
  96. afx_msg void OnTreeCollapsebranch();
  97. afx_msg void OnTreeExpandall();
  98. afx_msg void OnTreeExpandbranch();
  99. afx_msg void OnTreeExpandonelevel();
  100. afx_msg void OnUpdateTreeCollapsebranch(CCmdUI* pCmdUI);
  101. afx_msg void OnUpdateTreeExpandonelevel(CCmdUI* pCmdUI);
  102. afx_msg void OnUpdateTreeExpandall(CCmdUI* pCmdUI);
  103. afx_msg void OnUpdateTreeExpandbranch(CCmdUI* pCmdUI);
  104. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  105. afx_msg void OnSize(UINT nType, int cx, int cy);
  106. //}}AFX_MSG
  107. // special message handling
  108. afx_msg void OnZoom(UINT nID);
  109. afx_msg void OnUpdateZoom(CCmdUI* pCmdUI);
  110. DECLARE_MESSAGE_MAP()
  111. friend class CServerViewDC;
  112. };
  113. class CServerDC : public CClientDC
  114. {
  115. CFont font;
  116. CFont *pOldFont;
  117. public:
  118. CServerDC(CServerView *pView);
  119. ~CServerDC();
  120. };
  121. /////////////////////////////////////////////////////////////////////////////