LAPTOP-SNT8I5JK\Boounion
2025-07-28 e51c6d1360f9679dd8e4dd3379ce0db1886badbf
SourceCode/Bond/EAPSimulator/EAPSimulator.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@

// EAPSimulator.cpp: å®šä¹‰åº”用程序的类行为。
//
#include "pch.h"
#include "framework.h"
#include "EAPSimulator.h"
#include "EAPSimulatorDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CEAPSimulatorApp
BEGIN_MESSAGE_MAP(CEAPSimulatorApp, CWinApp)
   ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CEAPSimulatorApp æž„造
CEAPSimulatorApp::CEAPSimulatorApp()
{
   // æ”¯æŒé‡æ–°å¯åŠ¨ç®¡ç†å™¨
   m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
   // TODO: åœ¨æ­¤å¤„添加构造代码,
   // å°†æ‰€æœ‰é‡è¦çš„初始化放置在 InitInstance ä¸­
}
// å”¯ä¸€çš„ CEAPSimulatorApp å¯¹è±¡
CEAPSimulatorApp theApp;
// CEAPSimulatorApp åˆå§‹åŒ–
BOOL CEAPSimulatorApp::InitInstance()
{
   // å¦‚果一个运行在 Windows XP ä¸Šçš„应用程序清单指定要
   // ä½¿ç”¨ ComCtl32.dll ç‰ˆæœ¬ 6 æˆ–更高版本来启用可视化方式,
   //则需要 InitCommonControlsEx()。  å¦åˆ™ï¼Œå°†æ— æ³•创建窗口。
   INITCOMMONCONTROLSEX InitCtrls;
   InitCtrls.dwSize = sizeof(InitCtrls);
   // å°†å®ƒè®¾ç½®ä¸ºåŒ…括所有要在应用程序中使用的
   // å…¬å…±æŽ§ä»¶ç±»ã€‚
   InitCtrls.dwICC = ICC_WIN95_CLASSES;
   InitCommonControlsEx(&InitCtrls);
   CWinApp::InitInstance();
   AfxEnableControlContainer();
   // åˆ›å»º shell ç®¡ç†å™¨ï¼Œä»¥é˜²å¯¹è¯æ¡†åŒ…含
   // ä»»ä½• shell æ ‘视图控件或 shell åˆ—表视图控件。
   CShellManager *pShellManager = new CShellManager;
   // æ¿€æ´»â€œWindows Native”视觉管理器,以便在 MFC æŽ§ä»¶ä¸­å¯ç”¨ä¸»é¢˜
   CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
   // æ ‡å‡†åˆå§‹åŒ–
   // å¦‚果未使用这些功能并希望减小
   // æœ€ç»ˆå¯æ‰§è¡Œæ–‡ä»¶çš„大小,则应移除下列
   // ä¸éœ€è¦çš„特定初始化例程
   // æ›´æ”¹ç”¨äºŽå­˜å‚¨è®¾ç½®çš„æ³¨å†Œè¡¨é¡¹
   // TODO: åº”适当修改该字符串,
   // ä¾‹å¦‚修改为公司或组织名
   SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
   // æœ¬ç¨‹åºæ–‡ä»¶ç›®å½•
   TCHAR sDrive[_MAX_DRIVE];
   TCHAR sDir[_MAX_DIR];
   TCHAR sFilename[_MAX_FNAME], sAppFilename[_MAX_FNAME];
   TCHAR sExt[_MAX_EXT];
   GetModuleFileName(AfxGetInstanceHandle(), sAppFilename, _MAX_FNAME);
   _tsplitpath_s(sAppFilename, sDrive, sDir, sFilename, sExt);
   m_strAppDir = CString(sDrive) + CString(sDir);
   m_strAppFile = CString(sFilename);
   // åˆå§‹åŒ–Rx库
   RX_Init();
   HSMS_Initialize();
   CEAPSimulatorDlg dlg;
   m_pMainWnd = &dlg;
   INT_PTR nResponse = dlg.DoModal();
   if (nResponse == IDOK)
   {
      // TODO: åœ¨æ­¤æ”¾ç½®å¤„理何时用
      //  â€œç¡®å®šâ€æ¥å…³é—­å¯¹è¯æ¡†çš„代码
   }
   else if (nResponse == IDCANCEL)
   {
      // TODO: åœ¨æ­¤æ”¾ç½®å¤„理何时用
      //  â€œå–消”来关闭对话框的代码
   }
   else if (nResponse == -1)
   {
      TRACE(traceAppMsg, 0, "警告: å¯¹è¯æ¡†åˆ›å»ºå¤±è´¥ï¼Œåº”用程序将意外终止。\n");
      TRACE(traceAppMsg, 0, "警告: å¦‚果您在对话框上使用 MFC æŽ§ä»¶ï¼Œåˆ™æ— æ³• #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
   }
   // åˆ é™¤ä¸Šé¢åˆ›å»ºçš„ shell ç®¡ç†å™¨ã€‚
   if (pShellManager != nullptr)
   {
      delete pShellManager;
   }
#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
   ControlBarCleanUp();
#endif
   // ç”±äºŽå¯¹è¯æ¡†å·²å…³é—­ï¼Œæ‰€ä»¥å°†è¿”回 FALSE ä»¥ä¾¿é€€å‡ºåº”用程序,
   //  è€Œä¸æ˜¯å¯åŠ¨åº”ç”¨ç¨‹åºçš„æ¶ˆæ¯æ³µã€‚
   return FALSE;
}
int CEAPSimulatorApp::ExitInstance()
{
   HSMS_Term();
   RX_Term();
   return CWinApp::ExitInstance();
}