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 "GUI_WinZip.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_DYNCREATE(CMainFrame, CFrameWnd)
  31. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  32. //{{AFX_MSG_MAP(CMainFrame)
  33. ON_WM_CREATE()
  34. ON_COMMAND(ID_THEME_NATIVEWINXP, OnThemeNativewinxp)
  35. ON_COMMAND(ID_THEME_OFFICE2003, OnThemeOffice2003)
  36. ON_WM_CLOSE()
  37. //}}AFX_MSG_MAP
  38. ON_UPDATE_COMMAND_UI(ID_THEME_NATIVEWINXP, OnUpdateThemeNativewinxp)
  39. ON_UPDATE_COMMAND_UI(ID_THEME_OFFICE2003, OnUpdateThemeOffice2003)
  40. ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
  41. ON_COMMAND(ID_FILE_NEW_ARCHIVE, OnEmptyCommand)
  42. ON_COMMAND(ID_FILE_OPEN_ARCHIVE, OnEmptyCommand)
  43. ON_COMMAND(ID_FILE_FAVORITES, OnEmptyCommand)
  44. ON_COMMAND(ID_FILE_CLOSE_ARCHIVE, OnEmptyCommand)
  45. ON_COMMAND(ID_FILE_WIZARD, OnEmptyCommand)
  46. ON_COMMAND(ID_FILE_PROPERTIES, OnEmptyCommand)
  47. ON_COMMAND_RANGE(ID_ACTIONS_ADD, ID_ACTIONS_UUENCODE, OnEmptyCommandRange)
  48. END_MESSAGE_MAP()
  49. static UINT indicators[] =
  50. {
  51. ID_SEPARATOR,           // status line indicator
  52. ID_INDICATOR_CAPS,
  53. ID_INDICATOR_NUM,
  54. ID_INDICATOR_SCRL,
  55. };
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CMainFrame construction/destruction
  58. CMainFrame::CMainFrame()
  59. {
  60. }
  61. CMainFrame::~CMainFrame()
  62. {
  63. }
  64. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  65. {
  66. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  67. return -1;
  68. if (!m_wndStatusBar.Create(this) ||
  69. !m_wndStatusBar.SetIndicators(indicators,
  70.   sizeof(indicators)/sizeof(UINT)))
  71. {
  72. TRACE0("Failed to create status barn");
  73. return -1;      // fail to create
  74. }
  75. if (!InitCommandBars())
  76. {
  77. return -1;      // fail to create
  78. }
  79. CXTPCommandBars* pCommandBars = GetCommandBars();
  80. pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
  81. CXTPToolBar* pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
  82. if (!pCommandBar ||
  83. !pCommandBar->LoadToolBar(IDR_MAINFRAME))
  84. {
  85. TRACE0("Failed to create toolbarn");
  86. return -1;
  87. }
  88. XTPImageManager()->SetIcons(IDR_MAINFRAME, IDR_ICONS_TOOLBAR_32);
  89. pCommandBars->SetTheme(xtpThemeNativeWinXP);
  90. pCommandBars->GetCommandBarsOptions()->szLargeIcons = CSize(42, 35);
  91. pCommandBars->GetCommandBarsOptions()->bLargeIcons = TRUE;
  92. pCommandBar->ShowTextBelowIcons();
  93. // Load the previous state for command bars.
  94. LoadCommandBars(_T("CommandBars2"));
  95. return 0;
  96. }
  97. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  98. {
  99. if( !CFrameWnd::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. CFrameWnd::AssertValid();
  112. }
  113. void CMainFrame::Dump(CDumpContext& dc) const
  114. {
  115. CFrameWnd::Dump(dc);
  116. }
  117. #endif //_DEBUG
  118. /////////////////////////////////////////////////////////////////////////////
  119. // CMainFrame message handlers
  120. void CMainFrame::OnEmptyCommand()
  121. {
  122. }
  123. void CMainFrame::OnEmptyCommandRange(UINT)
  124. {
  125. }
  126. void CMainFrame::OnThemeNativewinxp()
  127. {
  128. GetCommandBars()->SetTheme(xtpThemeNativeWinXP);
  129. }
  130. void CMainFrame::OnUpdateThemeNativewinxp(CCmdUI *pCmdUI)
  131. {
  132. pCmdUI->SetCheck(GetCommandBars()->GetPaintManager()->GetCurrentTheme() == xtpThemeNativeWinXP);
  133. }
  134. void CMainFrame::OnThemeOffice2003()
  135. {
  136. GetCommandBars()->SetTheme(xtpThemeOffice2003);
  137. }
  138. void CMainFrame::OnUpdateThemeOffice2003(CCmdUI *pCmdUI)
  139. {
  140. pCmdUI->SetCheck(GetCommandBars()->GetPaintManager()->GetCurrentTheme() == xtpThemeOffice2003);
  141. }
  142. void CMainFrame::OnClose()
  143. {
  144. // Save the current state for command bars.
  145. SaveCommandBars(_T("CommandBars2"));
  146. // TODO: Add your message handler code here and/or call default
  147. CFrameWnd::OnClose();
  148. }
  149. void CMainFrame::OnCustomize()
  150. {
  151. // get a pointer to the command bars object.
  152. CXTPCommandBars* pCommandBars = GetCommandBars();
  153. if (pCommandBars == NULL)
  154. return;
  155. // instanciate the customize dialog
  156. CXTPCustomizeSheet dlg(pCommandBars);
  157. // add the options page to the customize dialog.
  158. CXTPCustomizeOptionsPage pageOptions(&dlg);
  159. dlg.AddPage(&pageOptions);
  160. // add the commands page to the customize dialog.
  161. CXTPCustomizeCommandsPage* pPageCommands = dlg.GetCommandsPage();
  162. pPageCommands->AddCategories(IDR_MAINFRAME);
  163. // initialize the commands page page.
  164. pPageCommands->InsertAllCommandsCategory();
  165. pPageCommands->InsertBuiltInMenus(IDR_MAINFRAME);
  166. pPageCommands->InsertNewMenuCategory();
  167. // display the customize dialog.
  168. dlg.DoModal();
  169. }