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

对话框与窗口

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "PrintPreview.h"
  22. #include "MainFrm.h"
  23. #ifdef _DEBUG
  24. #define new DEBUG_NEW
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CMainFrame
  30. IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
  31. BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  32. //{{AFX_MSG_MAP(CMainFrame)
  33. ON_WM_CREATE()
  34. ON_WM_DESTROY()
  35. ON_WM_CLOSE()
  36. //}}AFX_MSG_MAP
  37. ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
  38. END_MESSAGE_MAP()
  39. static UINT indicators[] =
  40. {
  41. ID_SEPARATOR,           // status line indicator
  42. ID_INDICATOR_CAPS,
  43. ID_INDICATOR_NUM,
  44. ID_INDICATOR_SCRL,
  45. };
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CMainFrame construction/destruction
  48. CMainFrame::CMainFrame()
  49. {
  50. }
  51. CMainFrame::~CMainFrame()
  52. {
  53. }
  54. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  55. {
  56. if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
  57. return -1;
  58. if (!m_wndStatusBar.Create(this) ||
  59. !m_wndStatusBar.SetIndicators(indicators,
  60. sizeof(indicators)/sizeof(UINT)))
  61. {
  62. TRACE0("Failed to create status barn");
  63. return -1;      // fail to create
  64. }
  65. if (!InitCommandBars())
  66. return -1;
  67. CXTPPaintManager::SetTheme(xtpThemeOffice2003);
  68. CXTPCommandBars* pCommandBars = GetCommandBars();
  69. CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
  70. // Set xtpFlagUseMDIMenus flag to use MDI menus.
  71. // But! You must forget about customization in this case.
  72. pMenuBar->SetFlags(xtpFlagUseMDIMenus);
  73. CXTPToolBar* pStandardBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
  74. if (!pStandardBar ||
  75. !pStandardBar->LoadToolBar(IDR_MAINFRAME))
  76. {
  77. TRACE0("Failed to create toolbarn");
  78. }
  79. m_paneManager.InstallDockingPanes(this);
  80. m_paneManager.SetTheme(xtpPaneThemeOffice2003);
  81. CXTPDockingPane* pwndPane1 = m_paneManager.CreatePane(
  82. 1, CRect(0, 0,200, 120), xtpPaneDockLeft);
  83. pwndPane1->SetTitle(_T("Empty Frame"));
  84. CXTPDockingPane* pwndPane2 = m_paneManager.CreatePane(
  85. 2, CRect(0, 0,200, 120), xtpPaneDockBottom, pwndPane1);
  86. pwndPane2->SetTitle(_T("Empty Frame"));
  87. pwndPane2->SetIconID(1);
  88. pwndPane1->Hide();
  89. pwndPane2->Hide();
  90. int nIDIcons[] = {1};
  91. m_paneManager.SetIcons(IDB_BITMAP_ICONS, nIDIcons, 1, (COLORREF)-1);
  92. VERIFY(m_MTIClientWnd.Attach(this));
  93. // Load the previous state for command bars.
  94. LoadCommandBars(_T("CommandBars"));
  95. return 0;
  96. }
  97. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  98. {
  99. if( !CMDIFrameWnd::PreCreateWindow(cs) )
  100. return FALSE;
  101. cs.lpszClass = _T("XTPMainFrame");
  102. CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass, 
  103. CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME));
  104. return TRUE;
  105. }
  106. /////////////////////////////////////////////////////////////////////////////
  107. // CMainFrame diagnostics
  108. #ifdef _DEBUG
  109. void CMainFrame::AssertValid() const
  110. {
  111. CMDIFrameWnd::AssertValid();
  112. }
  113. void CMainFrame::Dump(CDumpContext& dc) const
  114. {
  115. CMDIFrameWnd::Dump(dc);
  116. }
  117. #endif //_DEBUG
  118. /////////////////////////////////////////////////////////////////////////////
  119. // CMainFrame message handlers
  120. void CMainFrame::OnDestroy()
  121. {
  122. m_MTIClientWnd.Detach();
  123. CMDIFrameWnd::OnDestroy();
  124. }
  125. void CMainFrame::OnSetPreviewMode(BOOL bPreview, CPrintPreviewState* pState)
  126. {
  127. // Toggle CommandBars
  128. GetCommandBars()->OnSetPreviewMode(bPreview);
  129. // Toggle Tab Client
  130. m_MTIClientWnd.ShowWorkspace(!bPreview);
  131. // Toggle Docking Panes.
  132. m_paneManager.OnSetPreviewMode(bPreview);
  133. CMDIFrameWnd::OnSetPreviewMode(bPreview, pState);
  134. }
  135. void CMainFrame::OnClose()
  136. {
  137. // Save the current state for command bars.
  138. SaveCommandBars(_T("CommandBars"));
  139. // TODO: Add your message handler code here and/or call default
  140. CMDIFrameWnd::OnClose();
  141. }
  142. void CMainFrame::OnCustomize()
  143. {
  144. // get a pointer to the command bars object.
  145. CXTPCommandBars* pCommandBars = GetCommandBars();
  146. if (pCommandBars == NULL)
  147. return;
  148. // instantiate the customize dialog
  149. CXTPCustomizeSheet dlg(pCommandBars);
  150. // add the options page to the customize dialog.
  151. CXTPCustomizeOptionsPage pageOptions(&dlg);
  152. dlg.AddPage(&pageOptions);
  153. // add the commands page to the customize dialog.
  154. CXTPCustomizeCommandsPage* pPageCommands = dlg.GetCommandsPage();
  155. pPageCommands->AddCategories(IDR_PRINTPTYPE);
  156. // initialize the commands page page.
  157. pPageCommands->InsertAllCommandsCategory();
  158. pPageCommands->InsertBuiltInMenus(IDR_PRINTPTYPE);
  159. pPageCommands->InsertNewMenuCategory();
  160. // display the customize dialog.
  161. dlg.DoModal();
  162. }