mainfrm.cpp
上传用户:liudazhe
上传日期:2007-01-02
资源大小:51k
文件大小:4k
源码类别:

菜单

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1997 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #include "stdafx.h"
  13. #include "MDI.h"
  14. #include "MainFrm.h"
  15. #ifdef _DEBUG
  16. #define new DEBUG_NEW
  17. #undef THIS_FILE
  18. static char THIS_FILE[] = __FILE__;
  19. #endif
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CMainFrame
  22. IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
  23. BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  24. //{{AFX_MSG_MAP(CMainFrame)
  25. ON_WM_CREATE()
  26. //}}AFX_MSG_MAP
  27. END_MESSAGE_MAP()
  28. static UINT indicators[] =
  29. {
  30. ID_SEPARATOR,           // status line indicator
  31. ID_INDICATOR_CAPS,
  32. ID_INDICATOR_NUM,
  33. ID_INDICATOR_SCRL,
  34. };
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CMainFrame construction/destruction
  37. CMainFrame::CMainFrame()
  38. {
  39. }
  40. CMainFrame::~CMainFrame()
  41. {
  42. }
  43. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  44. {
  45. if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
  46. return -1;
  47. if (!m_wndToolBar.Create(this) ||
  48. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  49. {
  50. TRACE0("Failed to create toolbarn");
  51. return -1;      // fail to create
  52. }
  53. // set button styles for colors to TBBS_CHECKBOX
  54. m_wndToolBar.SetButtonStyle(6, TBBS_CHECKBOX);
  55. m_wndToolBar.SetButtonStyle(7, TBBS_CHECKBOX);
  56. m_wndToolBar.SetButtonStyle(10, TBBS_CHECKBOX);
  57. m_wndToolBar.SetButtonStyle(11, TBBS_CHECKBOX);
  58.   m_wndToolBar.SetButtonStyle(12, TBBS_CHECKBOX);
  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. m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
  67. CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  68. if (!m_wndMenuBar.Create(this) ||
  69. !m_wndMenuBar.LoadMenuBar(IDR_MAINFRAME))
  70. {
  71. TRACE0("Failed to create toolbarn");
  72. return -1;      // faile to create
  73. }
  74. m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
  75. EnableDocking(CBRS_ALIGN_ANY);
  76. DockControlBar(&m_wndMenuBar);
  77. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  78. EnableDocking(CBRS_ALIGN_ANY);
  79. DockControlBar(&m_wndToolBar);
  80. // Add title for toolbar
  81. m_wndToolBar.SetWindowText(_T("Standard"));
  82. return 0;
  83. }
  84. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  85. {
  86. return CMDIFrameWnd::PreCreateWindow(cs);
  87. }
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CMainFrame diagnostics
  90. #ifdef _DEBUG
  91. void CMainFrame::AssertValid() const
  92. {
  93. CMDIFrameWnd::AssertValid();
  94. }
  95. void CMainFrame::Dump(CDumpContext& dc) const
  96. {
  97. CMDIFrameWnd::Dump(dc);
  98. }
  99. #endif //_DEBUG
  100. /////////////////////////////////////////////////////////////////////////////
  101. // CMainFrame message handlers
  102. BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 
  103. {
  104. // TODO: 
  105. if (m_wndMenuBar.TranslateFrameMessage(pMsg))
  106. return TRUE;
  107. return CMDIFrameWnd::PreTranslateMessage(pMsg);
  108. }
  109. void CMainFrame::ActivateFrame(int nCmdShow) 
  110. {
  111. // TODO: 
  112. //  if App is SDI, maybe you can hide main frame until menu hidden by m_wndMenuBar.OnActivateFrame
  113. // m_wndMenuBar.OnActivateFrame(nCmdShow);
  114. CMDIFrameWnd::ActivateFrame(nCmdShow);
  115. }