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

Windows编程

开发平台:

Visual C++

  1. // ipframe.cpp : implementation of the CInPlaceFrame 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 "scribble.h"
  14. #include "ipframe.h"
  15. #ifdef _DEBUG
  16. #undef THIS_FILE
  17. static char BASED_CODE THIS_FILE[] = __FILE__;
  18. #endif
  19. /////////////////////////////////////////////////////////////////////////////
  20. // CInPlaceFrame
  21. IMPLEMENT_DYNCREATE(CInPlaceFrame, COleDocIPFrameWnd)
  22. BEGIN_MESSAGE_MAP(CInPlaceFrame, COleDocIPFrameWnd)
  23. //{{AFX_MSG_MAP(CInPlaceFrame)
  24. ON_WM_CREATE()
  25. //}}AFX_MSG_MAP
  26. // Global help commands
  27. ON_COMMAND(ID_HELP_INDEX, COleDocIPFrameWnd::OnHelpIndex)
  28. ON_COMMAND(ID_HELP_USING, COleDocIPFrameWnd::OnHelpUsing)
  29. ON_COMMAND(ID_HELP, COleDocIPFrameWnd::OnHelp)
  30. ON_COMMAND(ID_DEFAULT_HELP, COleDocIPFrameWnd::OnHelpIndex)
  31. ON_COMMAND(ID_CONTEXT_HELP, COleDocIPFrameWnd::OnContextHelp)
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // arrays of IDs used to initialize control bars
  35. // toolbar buttons - IDs are command buttons
  36. static UINT BASED_CODE buttons[] =
  37. {
  38. // same order as in the bitmap 'itoolbar.bmp'
  39. ID_EDIT_CUT,
  40. ID_EDIT_COPY,
  41. ID_EDIT_PASTE,
  42. ID_SEPARATOR,
  43. ID_PEN_THICK_OR_THIN,
  44. ID_SEPARATOR,
  45. ID_APP_ABOUT,
  46. ID_CONTEXT_HELP,
  47. };
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CInPlaceFrame construction/destruction
  50. CInPlaceFrame::CInPlaceFrame()
  51. {
  52. }
  53. CInPlaceFrame::~CInPlaceFrame()
  54. {
  55. }
  56. int CInPlaceFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  57. {
  58. if (COleDocIPFrameWnd::OnCreate(lpCreateStruct) == -1)
  59. return -1;
  60. // CResizeBar implements in-place resizing.
  61. if (!m_wndResizeBar.Create(this))
  62. {
  63. TRACE0("Failed to create resize barn");
  64. return -1;      // fail to create
  65. }
  66. // By default, it is a good idea to register a drop-target that does
  67. //  nothing with your frame window.  This prevents drops from
  68. //  "falling through" to a container that supports drag-drop.
  69. m_dropTarget.Register(this);
  70. return 0;
  71. }
  72. // OnCreateControlBars is called by the framework to create control bars on the
  73. //  container application's windows.  pWndFrame is the top level frame window of
  74. //  the container and is always non-NULL.  pWndDoc is the doc level frame window
  75. //  and will be NULL when the container is an SDI application.  A server
  76. //  application can place MFC control bars on either window.
  77. BOOL CInPlaceFrame::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc)
  78. {
  79. // Create toolbar on client's frame window
  80. if (!m_wndToolBar.Create(pWndFrame) ||
  81. !m_wndToolBar.LoadBitmap(IDR_SCRIBTYPE_SRVR_IP) ||
  82. !m_wndToolBar.SetButtons(buttons, sizeof(buttons)/sizeof(UINT)))
  83. {
  84. TRACE0("Failed to create toolbarn");
  85. return FALSE;
  86. }
  87. // Set owner to this window, so messages are delivered to correct app
  88. m_wndToolBar.SetOwner(this);
  89. // TODO: Delete these three lines if you don't want the toolbar to
  90. //  be dockable
  91. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  92. pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
  93. pWndFrame->DockControlBar(&m_wndToolBar);
  94. // TODO: Remove this if you don't want tool tips
  95. m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
  96. CBRS_TOOLTIPS | CBRS_FLYBY);
  97. return TRUE;
  98. }
  99. /////////////////////////////////////////////////////////////////////////////
  100. // CInPlaceFrame diagnostics
  101. #ifdef _DEBUG
  102. void CInPlaceFrame::AssertValid() const
  103. {
  104. COleDocIPFrameWnd::AssertValid();
  105. }
  106. void CInPlaceFrame::Dump(CDumpContext& dc) const
  107. {
  108. COleDocIPFrameWnd::Dump(dc);
  109. }
  110. #endif //_DEBUG
  111. /////////////////////////////////////////////////////////////////////////////
  112. // CInPlaceFrame commands