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

Windows编程

开发平台:

Visual C++

  1. // paddoc.cpp : implementation of the CPadDoc 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 "stdafx.h"
  13. #include "superpad.h"
  14. #include "paddoc.h"
  15. #include "paditem.h"
  16. #include "linkitem.h"
  17. #ifdef _DEBUG
  18. #undef THIS_FILE
  19. static char BASED_CODE THIS_FILE[] = __FILE__;
  20. #endif
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CPadDoc
  23. IMPLEMENT_DYNCREATE(CPadDoc, COleServerDoc)
  24. BEGIN_MESSAGE_MAP(CPadDoc, COleServerDoc)
  25. //{{AFX_MSG_MAP(CPadDoc)
  26. ON_COMMAND(ID_VIEW_UPDATENOW, OnViewUpdatenow)
  27. ON_COMMAND(ID_CANCEL_INPLACE, OnCancelInplace)
  28. //}}AFX_MSG_MAP
  29. END_MESSAGE_MAP()
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CPadDoc delegation to CEditView
  32. CPadDoc::CPadDoc()
  33. {
  34. }
  35. CPadDoc::~CPadDoc()
  36. {
  37. }
  38. void CPadDoc::DeleteContents()
  39. {
  40. COleServerDoc::DeleteContents();
  41. if (m_viewList.IsEmpty())
  42. return;
  43. CEditView* pView = (CEditView*)m_viewList.GetHead();
  44. ASSERT_KINDOF(CEditView, pView);
  45. pView->DeleteContents();
  46. }
  47. void CPadDoc::Serialize(CArchive& ar)
  48. {
  49. CEditView* pView = (CEditView*)m_viewList.GetHead();
  50. ASSERT_KINDOF(CEditView, pView);
  51. pView->SerializeRaw(ar);
  52. }
  53. COleServerItem* CPadDoc::OnGetEmbeddedItem()
  54. {
  55. CEmbeddedItem* pItem = new CEmbeddedItem(this);
  56. ASSERT_VALID(pItem);
  57. return pItem;
  58. }
  59. COleServerItem* CPadDoc::OnGetLinkedItem(LPCTSTR lpszItemName)
  60. {
  61. CPadLinkItem *pItem =
  62. (CPadLinkItem*)COleServerDoc::OnGetLinkedItem(lpszItemName);
  63. if (pItem == NULL)
  64. pItem = new CPadLinkItem(this, lpszItemName);
  65. ASSERT_VALID(pItem);
  66. return pItem;
  67. }
  68. /////////////////////////////////////////////////////////////////////////////
  69. void CPadDoc::OnViewUpdatenow()
  70. {
  71. UpdateAllItems(NULL);
  72. }
  73. // Note: both the server and the container should have a keyboard method
  74. //  of deactivating an active in-place item.
  75. void CPadDoc::OnCancelInplace()
  76. {
  77. if (IsInPlaceActive())
  78. OnDeactivateUI(FALSE);
  79. }
  80. void CPadDoc::SetSelection(int nBeg, int nEnd)
  81. {
  82. CEditView* pView = (CEditView*)m_viewList.GetHead();
  83. ASSERT_KINDOF(CEditView, pView);
  84. pView->GetEditCtrl().SetSel(nBeg, nEnd);
  85. }