DYNAMENU.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // dynamenu.cpp
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 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. //
  13. // Purpose: implementation of the CDynaMenuApp class
  14. //
  15. // Functions:
  16. //      Most of this file was generated by AppWizard.  The functions
  17. //      which contain code specific to this sample are:
  18. //
  19. //      CDynaMenuApp::InitInstance()         -- per-instance initialization
  20. #include "stdafx.h"
  21. #include "dynamenu.h"
  22. #include "mainfrm.h"
  23. #include "dmdoc.h"
  24. #include "dmview.h"
  25. #include "mdichild.h" // Our private CMDIChildWnd class
  26. #ifdef _DEBUG
  27. #undef THIS_FILE
  28. static char BASED_CODE THIS_FILE[] = __FILE__;
  29. #endif
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CDynaMenuApp
  32. BEGIN_MESSAGE_MAP(CDynaMenuApp, CWinApp)
  33. //{{AFX_MSG_MAP(CDynaMenuApp)
  34. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  35. // NOTE - the ClassWizard will add and remove mapping macros here.
  36. //    DO NOT EDIT what you see in these blocks of generated code!
  37. //}}AFX_MSG_MAP
  38. // Standard file based document commands
  39. ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  40. ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  41. // Standard print setup command
  42. ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  43. END_MESSAGE_MAP()
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CDynaMenuApp construction
  46. CDynaMenuApp::CDynaMenuApp()
  47. {
  48. // TODO: add construction code here,
  49. // Place all significant initialization in InitInstance
  50. }
  51. /////////////////////////////////////////////////////////////////////////////
  52. // The one and only CDynaMenuApp object
  53. CDynaMenuApp NEAR theApp;
  54. /////////////////////////////////////////////////////////////////////////////
  55. // CDynaMenuApp initialization
  56. //***********************************************************************
  57. // Function: CDynaMenuApp::InitInstance()
  58. //
  59. // Purpose:
  60. //      InitInstance is called by the framework to perform per-instance
  61. //      initialization of the application.
  62. //
  63. //      This function is the code generated by AppWizard with one
  64. //      exception - we use our own class for the frame window attached
  65. //      to a document template, instead of using CMDIChildWnd.
  66. //
  67. // Parameters:
  68. //      none
  69. //
  70. // Returns:
  71. //      nonzero if successful, otherwise 0
  72. //
  73. // Comments:
  74. //      see the CWinApp::InitInstance() documentation for further info.
  75. //
  76. //***********************************************************************
  77. BOOL CDynaMenuApp::InitInstance()
  78. {
  79. // Standard initialization
  80. // If you are not using these features and wish to reduce the size
  81. //  of your final executable, you should remove from the following
  82. //  the specific initialization routines you do not need.
  83. SetDialogBkColor();        // Set dialog background color to gray
  84. LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  85. // Register the application's document templates.  Document templates
  86. //  serve as the connection between documents, frame windows and views.
  87. CMultiDocTemplate* pDocTemplate;
  88. pDocTemplate = new CMultiDocTemplate(
  89. IDR_DYMENUTYPE,
  90. RUNTIME_CLASS(CDynaMenuDoc),
  91. RUNTIME_CLASS(CDynaMDIChildWnd),        // our private MDI child class!!
  92. RUNTIME_CLASS(CDynaMenuView));
  93. AddDocTemplate(pDocTemplate);
  94. // create main MDI Frame window
  95. CMainFrame* pMainFrame = new CMainFrame;
  96. if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  97. return FALSE;
  98. m_pMainWnd = pMainFrame;
  99. // enable file manager drag/drop and DDE Execute open
  100. EnableShellOpen();
  101. RegisterShellFileTypes(TRUE);
  102. // Parse command line for standard shell commands, DDE, file open
  103. CCommandLineInfo cmdInfo;
  104. ParseCommandLine(cmdInfo);
  105. // Dispatch commands specified on the command line
  106. if (!ProcessShellCommand(cmdInfo))
  107. return FALSE;
  108. m_pMainWnd->DragAcceptFiles();
  109. // The main window has been initialized, so show and update it.
  110. pMainFrame->ShowWindow(m_nCmdShow);
  111. pMainFrame->UpdateWindow();
  112. return TRUE;
  113. }
  114. /////////////////////////////////////////////////////////////////////////////
  115. // CAboutDlg dialog used for App About
  116. class CAboutDlg : public CDialog
  117. {
  118. public:
  119. CAboutDlg();
  120. // Dialog Data
  121. //{{AFX_DATA(CAboutDlg)
  122. enum { IDD = IDD_ABOUTBOX };
  123. //}}AFX_DATA
  124. // Implementation
  125. protected:
  126. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  127. //{{AFX_MSG(CAboutDlg)
  128. // No message handlers
  129. //}}AFX_MSG
  130. DECLARE_MESSAGE_MAP()
  131. };
  132. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  133. {
  134. //{{AFX_DATA_INIT(CAboutDlg)
  135. //}}AFX_DATA_INIT
  136. }
  137. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  138. {
  139. CDialog::DoDataExchange(pDX);
  140. //{{AFX_DATA_MAP(CAboutDlg)
  141. //}}AFX_DATA_MAP
  142. }
  143. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  144. //{{AFX_MSG_MAP(CAboutDlg)
  145. // No message handlers
  146. //}}AFX_MSG_MAP
  147. END_MESSAGE_MAP()
  148. // App command to run the dialog
  149. void CDynaMenuApp::OnAppAbout()
  150. {
  151. CAboutDlg aboutDlg;
  152. aboutDlg.DoModal();
  153. }
  154. /////////////////////////////////////////////////////////////////////////////
  155. // CDynaMenuApp commands