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

对话框与窗口

开发平台:

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 "Scribble.h"
  22. #include "MainFrm.h"
  23. extern CScribbleApp theApp;
  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_DYNAMIC(CMainFrame, CMDIFrameWnd)
  32. BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  33. //{{AFX_MSG_MAP(CMainFrame)
  34. ON_WM_CREATE()
  35. ON_WM_CLOSE()
  36. //}}AFX_MSG_MAP
  37. ON_COMMAND(ID_CONTEXT_HELP, CMDIFrameWnd::OnContextHelp)
  38. ON_COMMAND(ID_DEFAULT_HELP, CMDIFrameWnd::OnHelpFinder)
  39. // menu and command bar customization.
  40. ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
  41. ON_UPDATE_COMMAND_UI_RANGE(ID_POPUP_FILE, ID_POPUP_HELP, OnUpdatePopup)
  42. END_MESSAGE_MAP()
  43. static UINT indicators[] =
  44. {
  45. ID_SEPARATOR,           // status line indicator
  46. ID_INDICATOR_CAPS,
  47. ID_INDICATOR_NUM,
  48. ID_INDICATOR_SCRL,
  49. };
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CMainFrame construction/destruction
  52. CMainFrame::CMainFrame()
  53. {
  54. // TODO: add member initialization code here
  55. }
  56. CMainFrame::~CMainFrame()
  57. {
  58. }
  59. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  60. {
  61. if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
  62. return -1;
  63. if (!m_wndStatusBar.Create(this) ||
  64. !m_wndStatusBar.SetIndicators(indicators,
  65. sizeof(indicators)/sizeof(UINT)))
  66. {
  67. TRACE0("Failed to create status barn");
  68. return -1;      // fail to create
  69. }
  70. // Initialize the command bars
  71. if (!InitCommandBars())
  72. return -1;
  73. GetCommandBars()->EnableActions();
  74. SetCommandBarMenu();
  75. // Set Office 2003 Theme
  76. CXTPPaintManager::SetTheme(xtpThemeOffice2003);
  77. // Load the previous state for toolbars and menus.
  78. LoadCommandBars(_T("CommandBars2"));
  79. return 0;
  80. }
  81. BOOL CMainFrame::SetCommandBarMenu()
  82. {
  83. // Get a pointer to the command bars object.
  84. CXTPCommandBars* pCommandBars = GetCommandBars();
  85. if(pCommandBars == NULL)
  86. {
  87. TRACE0("Failed to create command bars object.n");
  88. return FALSE;      // fail to create
  89. }
  90. // Load menu bar caption.
  91. CString strCapt;
  92. strCapt.LoadString(IDS_MENUBAR);
  93. // Add the menu bar
  94. CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(
  95. strCapt, IDR_MAINFRAME);
  96. if(pMenuBar == NULL)
  97. {
  98. TRACE0("Failed to create menu bar.n");
  99. return FALSE;      // fail to create
  100. }
  101. // Load command bar caption.
  102. strCapt.LoadString(IDS_STANDARD);
  103. // Create ToolBar
  104. CXTPToolBar* pToolBar = (CXTPToolBar*)
  105. pCommandBars->Add(strCapt, xtpBarTop);
  106. if (!pToolBar || !pToolBar->LoadToolBar(IDR_MAINFRAME))
  107. {
  108. TRACE0("Failed to create toolbarn");
  109. return FALSE;      // fail to create
  110. }
  111. CMenu menu;
  112. menu.LoadMenu(IDR_SCRIBBTYPE);
  113. pCommandBars->GetActions()->CreateFromMenu(&menu);
  114. return TRUE;
  115. }
  116. void CMainFrame::ResetCommandBars()
  117. {
  118. m_bInRecalcLayout = TRUE;
  119. CXTPCommandBars* pCommandBars = GetCommandBars();
  120. CMenu menu;
  121. XTPResourceManager()->LoadMenu(&menu, IDR_SCRIBBTYPE);
  122. pCommandBars->GetActions()->CreateFromMenu(&menu);
  123. CString strTitle;
  124. XTPResourceManager()->LoadString(&strTitle, IDS_MENUBAR);
  125. pCommandBars->GetMenuBar()->SetTitle(strTitle);
  126. XTPResourceManager()->LoadString(&strTitle, IDS_STANDARD);
  127. pCommandBars->GetToolBar(IDR_MAINFRAME)->SetTitle(strTitle);
  128. m_bInRecalcLayout = FALSE;
  129. RecalcLayout();
  130. AfxGetApp()->OnIdle(0);
  131. UpdateWindow();
  132. }
  133. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  134. {
  135. if( !CMDIFrameWnd::PreCreateWindow(cs) )
  136. return FALSE;
  137. cs.lpszClass = _T("XTPMainFrame");
  138. CXTPDrawHelpers::RegisterWndClass(AfxGetInstanceHandle(), cs.lpszClass, 
  139. CS_DBLCLKS, AfxGetApp()->LoadIcon(IDR_MAINFRAME));
  140. return TRUE;
  141. }
  142. /////////////////////////////////////////////////////////////////////////////
  143. // CMainFrame diagnostics
  144. #ifdef _DEBUG
  145. void CMainFrame::AssertValid() const
  146. {
  147. CMDIFrameWnd::AssertValid();
  148. }
  149. void CMainFrame::Dump(CDumpContext& dc) const
  150. {
  151. CMDIFrameWnd::Dump(dc);
  152. }
  153. #endif //_DEBUG
  154. /////////////////////////////////////////////////////////////////////////////
  155. // CMainFrame message handlers
  156. void CMainFrame::OnCustomize()
  157. {
  158. // Get a pointer to the command bars object.
  159. CXTPCommandBars* pCommandBars = GetCommandBars();
  160. if(pCommandBars != NULL)
  161. {
  162. // Instanciate the customize dialog object.
  163. CXTPCustomizeSheet dlg(pCommandBars);
  164. // Add the options page to the customize dialog.
  165. CXTPCustomizeOptionsPage pageOptions(&dlg);
  166. dlg.AddPage(&pageOptions);
  167. // Add the commands page to the customize dialog.
  168. CXTPCustomizeCommandsPage* pCommands = dlg.GetCommandsPage();
  169. pCommands->AddCategories(IDR_SCRIBBTYPE);
  170. // Use the command bar manager to initialize the
  171. // customize dialog.
  172. pCommands->InsertAllCommandsCategory();
  173. pCommands->InsertBuiltInMenus(IDR_SCRIBBTYPE);
  174. pCommands->InsertNewMenuCategory();
  175. // Dispaly the dialog.
  176. dlg.DoModal();
  177. }
  178. }
  179. void CMainFrame::OnClose()
  180. {
  181. // Save the current state for toolbars and menus.
  182. SaveCommandBars(_T("CommandBars2"));
  183. CMDIFrameWnd::OnClose();
  184. }
  185. void CMainFrame::OnUpdatePopup(CCmdUI* pCmdUI)
  186. {
  187. pCmdUI->Enable();
  188. }