课程设计.cpp
上传用户:yhxbjx
上传日期:2018-11-07
资源大小:7142k
文件大小:6k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // 课程设计.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "课程设计.h"
  5. #include "MainFrm.h"
  6. #include "课程设计Set.h"
  7. #include "课程设计Doc.h"
  8. #include "课程设计View.h"
  9. #include "hellodialog.h"
  10. #include <initguid.h>
  11. #include "课程设计_i.c"
  12. #ifdef _DEBUG
  13. #define new DEBUG_NEW
  14. #undef THIS_FILE
  15. static char THIS_FILE[] = __FILE__;
  16. #endif
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CMyApp
  19. BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
  20. //{{AFX_MSG_MAP(CMyApp)
  21. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  22. // NOTE - the ClassWizard will add and remove mapping macros here.
  23. //    DO NOT EDIT what you see in these blocks of generated code!
  24. //}}AFX_MSG_MAP
  25. // Standard print setup command
  26. ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  27. END_MESSAGE_MAP()
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CMyApp construction
  30. CMyApp::CMyApp()
  31. {
  32. // TODO: add construction code here,
  33. // Place all significant initialization in InitInstance
  34. }
  35. /////////////////////////////////////////////////////////////////////////////
  36. // The one and only CMyApp object
  37. CMyApp theApp;
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CMyApp initialization
  40. BOOL CMyApp::InitInstance()
  41. {   hellodialog a;
  42.    if(a.DoModal()==IDOK)
  43.    {
  44. if (!InitATL())
  45. return FALSE;
  46. AfxEnableControlContainer();
  47. // Standard initialization
  48. // If you are not using these features and wish to reduce the size
  49. //  of your final executable, you should remove from the following
  50. //  the specific initialization routines you do not need.
  51. #ifdef _AFXDLL
  52. Enable3dControls(); // Call this when using MFC in a shared DLL
  53. #else
  54. Enable3dControlsStatic(); // Call this when linking to MFC statically
  55. #endif
  56. // Change the registry key under which our settings are stored.
  57. // TODO: You should modify this string to be something appropriate
  58. // such as the name of your company or organization.
  59. SetRegistryKey(_T("Local AppWizard-Generated Applications"));
  60. LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  61. // Register the application's document templates.  Document templates
  62. //  serve as the connection between documents, frame windows and views.
  63. CSingleDocTemplate* pDocTemplate;
  64. pDocTemplate = new CSingleDocTemplate(
  65. IDR_MAINFRAME,
  66. RUNTIME_CLASS(CMyDoc),
  67. RUNTIME_CLASS(CMainFrame),       // main SDI frame window
  68. RUNTIME_CLASS(CMyView));
  69. AddDocTemplate(pDocTemplate);
  70. // Parse command line for standard shell commands, DDE, file open
  71. CCommandLineInfo cmdInfo;
  72. ParseCommandLine(cmdInfo);
  73. if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
  74. {
  75. return TRUE;
  76. }
  77. // Dispatch commands specified on the command line
  78. if (!ProcessShellCommand(cmdInfo))
  79. return FALSE;
  80. // The one and only window has been initialized, so show and update it.
  81. m_pMainWnd->ShowWindow(SW_SHOW);
  82. m_pMainWnd->UpdateWindow();
  83. return TRUE;
  84.    }
  85.    else
  86.    return FALSE;
  87. }
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CAboutDlg dialog used for App About
  90. class CAboutDlg : public CDialog
  91. {
  92. public:
  93. CAboutDlg();
  94. // Dialog Data
  95. //{{AFX_DATA(CAboutDlg)
  96. enum { IDD = IDD_ABOUTBOX };
  97. //}}AFX_DATA
  98. // ClassWizard generated virtual function overrides
  99. //{{AFX_VIRTUAL(CAboutDlg)
  100. protected:
  101. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  102. //}}AFX_VIRTUAL
  103. // Implementation
  104. protected:
  105. //{{AFX_MSG(CAboutDlg)
  106. // No message handlers
  107. //}}AFX_MSG
  108. DECLARE_MESSAGE_MAP()
  109. };
  110. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  111. {
  112. //{{AFX_DATA_INIT(CAboutDlg)
  113. //}}AFX_DATA_INIT
  114. }
  115. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  116. {
  117. CDialog::DoDataExchange(pDX);
  118. //{{AFX_DATA_MAP(CAboutDlg)
  119. //}}AFX_DATA_MAP
  120. }
  121. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  122. //{{AFX_MSG_MAP(CAboutDlg)
  123. // No message handlers
  124. //}}AFX_MSG_MAP
  125. END_MESSAGE_MAP()
  126. // App command to run the dialog
  127. void CMyApp::OnAppAbout()
  128. {
  129. CAboutDlg aboutDlg;
  130. aboutDlg.DoModal();
  131. }
  132. /////////////////////////////////////////////////////////////////////////////
  133. // CMyApp message handlers
  134. CMyModule _Module;
  135. BEGIN_OBJECT_MAP(ObjectMap)
  136. END_OBJECT_MAP()
  137. LONG CMyModule::Unlock()
  138. {
  139. AfxOleUnlockApp();
  140. return 0;
  141. }
  142. LONG CMyModule::Lock()
  143. {
  144. AfxOleLockApp();
  145. return 1;
  146. }
  147. LPCTSTR CMyModule::FindOneOf(LPCTSTR p1, LPCTSTR p2)
  148. {
  149. while (*p1 != NULL)
  150. {
  151. LPCTSTR p = p2;
  152. while (*p != NULL)
  153. {
  154. if (*p1 == *p)
  155. return CharNext(p1);
  156. p = CharNext(p);
  157. }
  158. p1++;
  159. }
  160. return NULL;
  161. }
  162. int CMyApp::ExitInstance()
  163. {
  164. if (m_bATLInited)
  165. {
  166. _Module.RevokeClassObjects();
  167. _Module.Term();
  168. CoUninitialize();
  169. }
  170. return CWinApp::ExitInstance();
  171. }
  172. BOOL CMyApp::InitATL()
  173. {
  174. m_bATLInited = TRUE;
  175. #if _WIN32_WINNT >= 0x0400
  176. HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);
  177. #else
  178. HRESULT hRes = CoInitialize(NULL);
  179. #endif
  180. if (FAILED(hRes))
  181. {
  182. m_bATLInited = FALSE;
  183. return FALSE;
  184. }
  185. _Module.Init(ObjectMap, AfxGetInstanceHandle());
  186. _Module.dwThreadID = GetCurrentThreadId();
  187. LPTSTR lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT
  188. TCHAR szTokens[] = _T("-/");
  189. BOOL bRun = TRUE;
  190. LPCTSTR lpszToken = _Module.FindOneOf(lpCmdLine, szTokens);
  191. while (lpszToken != NULL)
  192. {
  193. if (lstrcmpi(lpszToken, _T("UnregServer"))==0)
  194. {
  195. _Module.UpdateRegistryFromResource(IDR_MY, FALSE);
  196. _Module.UnregisterServer(TRUE); //TRUE means typelib is unreg'd
  197. bRun = FALSE;
  198. break;
  199. }
  200. if (lstrcmpi(lpszToken, _T("RegServer"))==0)
  201. {
  202. _Module.UpdateRegistryFromResource(IDR_MY, TRUE);
  203. _Module.RegisterServer(TRUE);
  204. bRun = FALSE;
  205. break;
  206. }
  207. lpszToken = _Module.FindOneOf(lpszToken, szTokens);
  208. }
  209. if (!bRun)
  210. {
  211. m_bATLInited = FALSE;
  212. _Module.Term();
  213. CoUninitialize();
  214. return FALSE;
  215. }
  216. hRes = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, 
  217. REGCLS_MULTIPLEUSE);
  218. if (FAILED(hRes))
  219. {
  220. m_bATLInited = FALSE;
  221. CoUninitialize();
  222. return FALSE;
  223. }
  224. return TRUE;
  225. }