ipframe.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:5k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // [!output INPLACE_FRAME_IMPL] : implementation of the [!output INPLACE_FRAME_CLASS] class
  2. //
  3. #include "stdafx.h"
  4. #include "[!output APP_HEADER]"
  5. #include "[!output INPLACE_FRAME_HEADER]"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #endif
  9. // [!output INPLACE_FRAME_CLASS]
  10. IMPLEMENT_DYNCREATE([!output INPLACE_FRAME_CLASS], [!output INPLACE_FRAME_BASE_CLASS])
  11. BEGIN_MESSAGE_MAP([!output INPLACE_FRAME_CLASS], [!output INPLACE_FRAME_BASE_CLASS])
  12. ON_WM_CREATE()
  13. [!if CONTEXT_HELP]
  14. // Global help commands
  15. ON_COMMAND(ID_HELP_FINDER, &[!output INPLACE_FRAME_BASE_CLASS]::OnHelpFinder)
  16. ON_COMMAND(ID_HELP, &[!output INPLACE_FRAME_BASE_CLASS]::OnHelp)
  17. ON_COMMAND(ID_DEFAULT_HELP, &[!output INPLACE_FRAME_BASE_CLASS]::OnHelpFinder)
  18. ON_COMMAND(ID_CONTEXT_HELP, &[!output INPLACE_FRAME_BASE_CLASS]::OnContextHelp)
  19. [!endif]
  20. END_MESSAGE_MAP()
  21. // [!output INPLACE_FRAME_CLASS] construction/destruction
  22. [!output INPLACE_FRAME_CLASS]::[!output INPLACE_FRAME_CLASS]()
  23. {
  24. [!if ACCESSIBILITY]
  25. EnableActiveAccessibility();
  26. [!endif]
  27. }
  28. [!output INPLACE_FRAME_CLASS]::~[!output INPLACE_FRAME_CLASS]()
  29. {
  30. }
  31. int [!output INPLACE_FRAME_CLASS]::OnCreate(LPCREATESTRUCT lpCreateStruct)
  32. {
  33. if ([!output INPLACE_FRAME_BASE_CLASS]::OnCreate(lpCreateStruct) == -1)
  34. return -1;
  35. // CResizeBar implements in-place resizing.
  36. if (!m_wndResizeBar.Create(this))
  37. {
  38. TRACE0("Failed to create resize barn");
  39. return -1;      // fail to create
  40. }
  41. // By default, it is a good idea to register a drop-target that does
  42. //  nothing with your frame window.  This prevents drops from
  43. //  "falling through" to a container that supports drag-drop.
  44. m_dropTarget.Register(this);
  45. return 0;
  46. }
  47. [!if DOCKING_TOOLBAR]
  48. // OnCreateControlBars is called by the framework to create control bars on the
  49. //  container application's windows.  pWndFrame is the top level frame window of
  50. //  the container and is always non-NULL.  pWndDoc is the doc level frame window
  51. //  and will be NULL when the container is an SDI application.  A server
  52. //  application can place MFC control bars on either window.
  53. BOOL [!output INPLACE_FRAME_CLASS]::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc)
  54. {
  55. // Remove this if you use pWndDoc
  56. UNREFERENCED_PARAMETER(pWndDoc);
  57. // Set owner to this window, so messages are delivered to correct app
  58. m_wndToolBar.SetOwner(this);
  59. // Create toolbar on client's frame window
  60. [!if TOOLBAR_STYLE_REBAR]
  61. if (!m_wndToolBar.CreateEx(pWndFrame) ||
  62. [!else]
  63. if (!m_wndToolBar.CreateEx(pWndFrame, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP
  64. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  65. [!endif]
  66. [!if APP_TYPE_MDI]
  67. !m_wndToolBar.LoadToolBar(IDR_[!output SAFE_DOC_TYPE_NAME]TYPE_SRVR_IP))
  68. [!else]
  69. !m_wndToolBar.LoadToolBar(IDR_SRVR_INPLACE))
  70. [!endif]
  71. {
  72. TRACE0("Failed to create toolbarn");
  73. return FALSE;
  74. }
  75. [!if TOOLBAR_STYLE_REBAR]
  76. // Set owner to this window, so messages are delivered to correct app
  77. m_wndDlgBar.SetOwner(this);
  78. // Create dialog bar on client's frame window
  79. [!if APP_TYPE_MDI]
  80. if (!m_wndDlgBar.Create(pWndFrame, IDR_[!output SAFE_DOC_TYPE_NAME]TYPE_SRVR_IP,
  81. [!else]
  82. if (!m_wndDlgBar.Create(pWndFrame, IDR_SRVR_INPLACE,
  83. [!endif]
  84. CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
  85. {
  86. TRACE0("Failed to create dialogbarn");
  87. return FALSE;
  88. }
  89. // Set the owner of this window, so messages are delivered to correct app
  90. m_wndReBar.SetOwner(this);
  91. // Create a rebar on client's frame window
  92. if (!m_wndReBar.Create(pWndFrame) ||
  93. !m_wndReBar.AddBar(&m_wndToolBar) ||
  94. !m_wndReBar.AddBar(&m_wndDlgBar))
  95. {
  96. TRACE0("Failed to create rebarn");
  97. return FALSE;
  98. }
  99. // TODO: Remove this if you don't want tool tips
  100. m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
  101. CBRS_TOOLTIPS | CBRS_FLYBY);
  102. m_wndDlgBar.SetBarStyle(m_wndDlgBar.GetBarStyle() |
  103. CBRS_TOOLTIPS | CBRS_FLYBY);
  104. [!else]
  105. // TODO: Delete these three lines if you don't want the toolbar to be dockable
  106. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  107. pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
  108. pWndFrame->DockControlBar(&m_wndToolBar);
  109. [!endif]
  110. return TRUE;
  111. }
  112. [!endif]
  113. BOOL [!output INPLACE_FRAME_CLASS]::PreCreateWindow(CREATESTRUCT& cs)
  114. {
  115. // TODO: Modify the Window class or styles here by modifying the CREATESTRUCT cs
  116. return [!output INPLACE_FRAME_BASE_CLASS]::PreCreateWindow(cs);
  117. }
  118. // [!output INPLACE_FRAME_CLASS] diagnostics
  119. #ifdef _DEBUG
  120. void [!output INPLACE_FRAME_CLASS]::AssertValid() const
  121. {
  122. [!output INPLACE_FRAME_BASE_CLASS]::AssertValid();
  123. }
  124. void [!output INPLACE_FRAME_CLASS]::Dump(CDumpContext& dc) const
  125. {
  126. [!output INPLACE_FRAME_BASE_CLASS]::Dump(dc);
  127. }
  128. #endif //_DEBUG
  129. // [!output INPLACE_FRAME_CLASS] commands