MDI.CPP
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:3k
源码类别:

VC书籍

开发平台:

Visual C++

  1. // mdi.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 "mdi.h"
  14. #include "RevPlayThread.h"
  15. #include "mainfrm.h"
  16. #include  "winsock2.h"
  17. #ifdef _DEBUG
  18. #undef THIS_FILE
  19. static char BASED_CODE THIS_FILE[] = __FILE__;
  20. #endif
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CMdiApp
  23. BEGIN_MESSAGE_MAP(CMdiApp, CWinApp)
  24. //{{AFX_MSG_MAP(CMdiApp)
  25. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  26. //}}AFX_MSG_MAP
  27. END_MESSAGE_MAP()
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CMdiApp construction
  30. // Place all significant initialization in InitInstance
  31. CMdiApp::CMdiApp()
  32. {
  33. }
  34. /////////////////////////////////////////////////////////////////////////////
  35. // The one and only CMdiApp object
  36. CMdiApp NEAR theApp;
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMdiApp initialization
  39. BOOL CMdiApp::InitInstance()
  40. {
  41. // Win32 multi-threading APIs are not available on non-NT versions
  42. // of Windows less than Windows version 4.0.
  43. if ((::GetVersion() & 0x80000000) && (BYTE(::GetVersion()) < 4))
  44. {
  45. AfxMessageBox(IDS_CANNOT_RUN_ON_16BIT_WINDOWS_LT_4);
  46. return FALSE;
  47. }
  48. Enable3dControls();
  49. // create main MDI Frame window
  50. CMainFrame* pMainFrame = new CMainFrame;
  51. //if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  52. if (!pMainFrame->LoadFrame(IDR_REVPLAY))
  53. return FALSE;
  54. m_nCmdShow=SW_MAXIMIZE;
  55. pMainFrame->ShowWindow(m_nCmdShow);
  56. pMainFrame->UpdateWindow();
  57. m_pMainWnd = pMainFrame;
  58. pMainFrame->m_bAutoMenuEnable=FALSE;
  59.   CRevPlayThread::m_hEventRevPlayThreadKilled
  60. = CreateEvent(NULL, FALSE, FALSE, NULL); // auto reset, initially reset
  61.   WSADATA WSAData;
  62. int status;
  63. if (!(status = WSAStartup(MAKEWORD(2,2), &WSAData)) == 0) 
  64. {
  65.              AfxMessageBox("error StartUp");
  66.  return FALSE;
  67. }
  68. return TRUE;
  69. }
  70. int CMdiApp::ExitInstance()
  71. {
  72. // CoUninitialize();
  73. WSACleanup();
  74. CloseHandle(CRevPlayThread::m_hEventRevPlayThreadKilled);
  75.     return CWinApp::ExitInstance();
  76. }
  77. /////////////////////////////////////////////////////////////////////////////
  78. // CMdiApp commands
  79. void CMdiApp::OnAppAbout()
  80. {
  81. CDialog(IDD_ABOUTBOX).DoModal();
  82. }
  83. /////////////////////////////////////////////////////////////////////////////
  84. // other globals
  85. // Color array maps to Color menu
  86. COLORREF NEAR colorArray[] =
  87. {
  88. RGB (0, 0, 0),
  89. RGB (255, 0, 0),
  90. RGB (0, 255, 0),
  91. RGB (0, 0, 255),
  92. RGB (255, 255, 255)
  93. };
  94. /////////////////////////////////////////////////////////////////////////////