MDI_InnerOuterBars.cpp
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // MDI_InnerOuterBars.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "MDI_InnerOuterBars.h"
  5. #include "MainFrm.h"
  6. #include "ChildFrm.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CMDIApp
  14. BEGIN_MESSAGE_MAP(CMDIApp, CWinApp)
  15. //{{AFX_MSG_MAP(CMDIApp)
  16. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  17. // NOTE - the ClassWizard will add and remove mapping macros here.
  18. //    DO NOT EDIT what you see in these blocks of generated code!
  19. ON_COMMAND(ID_FILE_NEW, OnFileNew)
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CMDIApp construction
  24. CMDIApp::CMDIApp()
  25. {
  26. // TODO: add construction code here,
  27. // Place all significant initialization in InitInstance
  28. }
  29. /////////////////////////////////////////////////////////////////////////////
  30. // The one and only CMDIApp object
  31. CMDIApp theApp;
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CMDIApp initialization
  34. BOOL CMDIApp::InitInstance()
  35. {
  36. InitCommonControls();
  37. AfxEnableControlContainer();
  38. // Standard initialization
  39. // If you are not using these features and wish to reduce the size
  40. //  of your final executable, you should remove from the following
  41. //  the specific initialization routines you do not need.
  42. #if _MFC_VER < 0x700
  43. #ifdef _AFXDLL
  44. Enable3dControls(); // Call this when using MFC in a shared DLL
  45. #else
  46. Enable3dControlsStatic(); // Call this when linking to MFC statically
  47. #endif
  48. #endif
  49. // Change the registry key under which our settings are stored.
  50. // TODO: You should modify this string to be something appropriate
  51. // such as the name of your company or organization.
  52. SetRegistryKey( _T("Foss") );
  53. // To create the main window, this code creates a new frame window
  54. // object and then sets it as the application's main window object.
  55. CMDIFrameWnd* pFrame = new CMainFrame;
  56. m_pMainWnd = pFrame;
  57. // create main MDI frame window
  58. if (!pFrame->LoadFrame(IDR_MAINFRAME))
  59. return FALSE;
  60. // try to load shared MDI menus and accelerator table
  61. //TODO: add additional member variables and load calls for
  62. // additional menu types your application may need. 
  63. HINSTANCE hInst = AfxGetResourceHandle();
  64. m_hMDIMenu  = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_MDITYPE));
  65. m_hMDIAccel = ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_MDITYPE));
  66. // // The main window has been initialized, so show and update it.
  67. // pFrame->ShowWindow(m_nCmdShow);
  68. // pFrame->UpdateWindow();
  69. // window placement persistence
  70. pFrame->ActivateFrame( m_nCmdShow );
  71. return TRUE;
  72. }
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CMDIApp message handlers
  75. int CMDIApp::ExitInstance() 
  76. {
  77. //TODO: handle additional resources you may have added
  78. if (m_hMDIMenu != NULL)
  79. FreeResource(m_hMDIMenu);
  80. if (m_hMDIAccel != NULL)
  81. FreeResource(m_hMDIAccel);
  82. return CWinApp::ExitInstance();
  83. }
  84. void CMDIApp::OnFileNew() 
  85. {
  86. CMainFrame * pFrame =
  87. STATIC_DOWNCAST(
  88. CMainFrame,
  89. m_pMainWnd
  90. );
  91. // create a new MDI child window
  92. pFrame->CreateNewChild(
  93. RUNTIME_CLASS(CChildFrame),
  94. IDR_MDITYPE,
  95. m_hMDIMenu,
  96. m_hMDIAccel
  97. );
  98. }
  99. // App command to run the dialog
  100. void CMDIApp::OnAppAbout()
  101. {
  102. #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  103. VERIFY( ProfUISAbout() );
  104. #endif // #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  105. }