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 "MSDI.h"
  22. #include "MSDIThread.h"
  23. #include "MainFrm.h"
  24. #ifdef _DEBUG
  25. #define new DEBUG_NEW
  26. #undef THIS_FILE
  27. static char THIS_FILE[] = __FILE__;
  28. #endif
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CMainFrame
  31. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  32. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  33. //{{AFX_MSG_MAP(CMainFrame)
  34. ON_WM_CREATE()
  35. ON_WM_CLOSE()
  36. //}}AFX_MSG_MAP
  37. ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
  38. ON_XTP_CREATECONTROL()
  39. END_MESSAGE_MAP()
  40. static UINT indicators[] =
  41. {
  42. ID_SEPARATOR,           // status line indicator
  43. ID_INDICATOR_CAPS,
  44. ID_INDICATOR_NUM,
  45. ID_INDICATOR_SCRL,
  46. };
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CMainFrame construction/destruction
  49. CMainFrame::CMainFrame()
  50. {
  51. }
  52. CMainFrame::~CMainFrame()
  53. {
  54. }
  55. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  56. {
  57. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  58. return -1;
  59. if (!m_wndStatusBar.Create(this) ||
  60. !m_wndStatusBar.SetIndicators(indicators,
  61. sizeof(indicators)/sizeof(UINT)))
  62. {
  63. TRACE0("Failed to create status barn");
  64. return -1;      // fail to create
  65. }
  66. if (!InitCommandBars())
  67. return -1;
  68. CXTPCommandBars* pCommandBars = GetCommandBars();
  69. pCommandBars->SetPaintManager(CXTPPaintManager::CreateTheme(xtpThemeOfficeXP));
  70. pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
  71. CXTPToolBar* pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
  72. if (!pCommandBar  ||
  73. !pCommandBar->LoadToolBar(IDR_MAINFRAME))
  74. {
  75. TRACE0("Failed to create toolbarn");
  76. return -1;
  77. }
  78. pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);
  79. // Load the previous state for command bars.
  80. LoadCommandBars(_T("CommandBars"));
  81. return 0;
  82. }
  83. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  84. {
  85. if( !CFrameWnd::PreCreateWindow(cs) )
  86. return FALSE;
  87. cs.lpszClass = _T("XTPMainFrame");
  88. CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass, 
  89. CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME));
  90. return TRUE;
  91. }
  92. /////////////////////////////////////////////////////////////////////////////
  93. // CMainFrame diagnostics
  94. #ifdef _DEBUG
  95. void CMainFrame::AssertValid() const
  96. {
  97. CFrameWnd::AssertValid();
  98. }
  99. void CMainFrame::Dump(CDumpContext& dc) const
  100. {
  101. CFrameWnd::Dump(dc);
  102. }
  103. #endif //_DEBUG
  104. /////////////////////////////////////////////////////////////////////////////
  105. // CMainFrame message handlers
  106. void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
  107. {
  108. CFrameWnd::OnUpdateFrameTitle(bAddToTitle);
  109. CString strTitle;
  110. if (CDocument* pDoc = GetActiveDocument())
  111. strTitle = pDoc->GetTitle();
  112. ((CMSDIThread*)AfxGetThread())->SetDocumentTitle(strTitle);
  113. }
  114. int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
  115. {
  116. if (lpCreateControl->nID == ID_WINDOW_LIST)
  117. {
  118. lpCreateControl->pControl = new CControlWindowList();
  119. return TRUE;
  120. }
  121. return FALSE;
  122. }
  123. void CMainFrame::OnClose()
  124. {
  125. // Save the current state for command bars.
  126. SaveCommandBars(_T("CommandBars"));
  127. // TODO: Add your message handler code here and/or call default
  128. CFrameWnd::OnClose();
  129. }
  130. void CMainFrame::OnCustomize()
  131. {
  132. // get a pointer to the command bars object.
  133. CXTPCommandBars* pCommandBars = GetCommandBars();
  134. if (pCommandBars == NULL)
  135. return;
  136. // instanciate the customize dialog
  137. CXTPCustomizeSheet dlg(pCommandBars);
  138. // add the options page to the customize dialog.
  139. CXTPCustomizeOptionsPage pageOptions(&dlg);
  140. dlg.AddPage(&pageOptions);
  141. // add the commands page to the customize dialog.
  142. CXTPCustomizeCommandsPage* pPageCommands = dlg.GetCommandsPage();
  143. pPageCommands->AddCategories(IDR_MAINFRAME);
  144. // initialize the commands page page.
  145. pPageCommands->InsertAllCommandsCategory();
  146. pPageCommands->InsertBuiltInMenus(IDR_MAINFRAME);
  147. pPageCommands->InsertNewMenuCategory();
  148. // display the customize dialog.
  149. dlg.DoModal();
  150. }