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

界面编程

开发平台:

Visual C++

  1. // drawcli.cpp : Defines the class behaviors for the application.
  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. #include "stdafx.h"
  13. #include "drawcli.h"
  14. #include "mainfrm.h"
  15. #include "drawobj.h"
  16. #include "drawdoc.h"
  17. #include "drawvw.h"
  18. #include "splitfrm.h"
  19. #ifdef _DEBUG
  20. #undef THIS_FILE
  21. static char BASED_CODE THIS_FILE[] = __FILE__;
  22. #endif
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CDrawApp
  25. BEGIN_MESSAGE_MAP(CDrawApp, CWinApp)
  26. //{{AFX_MSG_MAP(CDrawApp)
  27. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  28. //}}AFX_MSG_MAP
  29. // Standard file based document commands
  30. ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  31. ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  32. // Standard print setup command
  33. ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CDrawApp construction
  37. CDrawApp::CDrawApp()
  38. {
  39. // TODO: add construction code here,
  40. // Place all significant initialization in InitInstance
  41. }
  42. /////////////////////////////////////////////////////////////////////////////
  43. // The one and only CDrawApp object
  44. CDrawApp theApp;
  45. // {EF6D747C-3A72-4971-80AC-1466C977CFC9}
  46. static const CLSID clsid =
  47. { 0xef6d747c, 0x3a72, 0x4971, { 0x80, 0xac, 0x14, 0x66, 0xc9, 0x77, 0xcf, 0xc9 } };
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CDrawApp initialization
  50. BOOL CDrawApp::InitInstance()
  51. {
  52. InitCommonControls();
  53. SetRegistryKey( _T("Foss") );
  54. // Initialize OLE libraries
  55. if (!AfxOleInit())
  56. {
  57. AfxMessageBox(IDP_OLE_INIT_FAILED);
  58. return FALSE;
  59. }
  60. // Standard initialization
  61. // If you are not using these features and wish to reduce the size
  62. //  of your final executable, you should remove from the following
  63. //  the specific initialization routines you do not need.
  64. #if _MFC_VER < 0x700
  65. #ifdef _AFXDLL
  66. Enable3dControls();         // Call this when using MFC in a shared DLL
  67. #else
  68. Enable3dControlsStatic();   // Call this when linking to MFC statically
  69. #endif
  70. #endif
  71. LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  72. // Register the application's document templates.  Document templates
  73. //  serve as the connection between documents, frame windows and views.
  74. #if (!defined __EXT_MFC_NO_SHELL_DIALOG_FILE)
  75. // make CDocManager using CExtShellDialogFile instead of CFileDialog
  76. ASSERT( m_pDocManager == NULL );
  77. m_pDocManager = new CExtDMFP < CDocManager >;
  78. #endif // (!defined __EXT_MFC_NO_SHELL_DIALOG_FILE)
  79. CMultiDocTemplate* pDocTemplate;
  80. pDocTemplate = new CMultiDocTemplate(
  81. IDR_DRAWCLTYPE,
  82. RUNTIME_CLASS(CDrawDoc),
  83. RUNTIME_CLASS(CSplitFrame),
  84. RUNTIME_CLASS(CDrawView));
  85. pDocTemplate->SetContainerInfo(IDR_DRAWCLTYPE_CNTR_IP);
  86. pDocTemplate->SetServerInfo(
  87. IDR_DRAWCLTYPE_SRVR_EMB, IDR_DRAWCLTYPE_SRVR_IP,
  88. RUNTIME_CLASS(CDrawInPlaceFrame)
  89. );
  90. AddDocTemplate(pDocTemplate);
  91. m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
  92. COleTemplateServer::RegisterAll();
  93. // create main MDI Frame window
  94. CMainFrame* pMainFrame = new CMainFrame;
  95. m_pMainWnd = pMainFrame;
  96. if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  97. {
  98. m_pMainWnd=NULL;
  99. return FALSE;
  100. }
  101. // Enable DDE Execute open
  102. EnableShellOpen();
  103. RegisterShellFileTypes(TRUE);
  104. // Parse command line for standard shell commands, DDE, file open
  105. CCommandLineInfo cmdInfo;
  106. ParseCommandLine(cmdInfo);
  107. if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
  108. return TRUE;
  109. // When a server application is launched stand-alone, it is a good idea
  110. //  to update the system registry in case it has been damaged.
  111. m_server.UpdateRegistry(OAT_INPLACE_SERVER);
  112. // Dispatch commands specified on the command line
  113. if (!ProcessShellCommand(cmdInfo))
  114. return FALSE;
  115. // Enable drag/drop open
  116. m_pMainWnd->DragAcceptFiles();
  117. // The main window has been initialized, so show and update it.
  118. //pMainFrame->ShowWindow(m_nCmdShow);
  119. //pMainFrame->UpdateWindow();
  120. pMainFrame->ActivateFrame( m_nCmdShow );
  121. // pMainFrame->SetActiveWindow();
  122. return TRUE;
  123. }
  124. // App command to run the dialog
  125. void CDrawApp::OnAppAbout()
  126. {
  127. #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  128. VERIFY( ProfUISAbout() );
  129. #endif // #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
  130. }
  131. /////////////////////////////////////////////////////////////////////////////
  132. // CDrawApp commands
  133. void CDrawApp::DoContextHelp() 
  134. {
  135. CWinApp::OnContextHelp();
  136. }