// GangBond2860Emulator.cpp : ¶¨ÒåÓ¦ÓóÌÐòµÄÀàÐÐΪ¡£ // #include "stdafx.h" #include "GangBond2860Emulator.h" #include "GangBond2860EmulatorDlg.h" #include "HmTab.h" #ifdef _DEBUG #define new DEBUG_NEW #endif #define VERSION_NUMBER 1 #define VERSION_NAME _T("1.0.2") // CGangBond2860EmulatorApp BEGIN_MESSAGE_MAP(CGangBond2860EmulatorApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CGangBond2860EmulatorApp ¹¹Ôì CGangBond2860EmulatorApp::CGangBond2860EmulatorApp() { // Ö§³ÖÖØÐÂÆô¶¯¹ÜÀíÆ÷ m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ôì´úÂ룬 // ½«ËùÓÐÖØÒªµÄ³õʼ»¯·ÅÖÃÔÚ InitInstance ÖÐ // °æ±¾ºÅ¼°°æ±¾Ãû³Æ m_nVersionNumber = VERSION_NUMBER; m_strVersionName = VERSION_NAME; } // ΨһµÄÒ»¸ö CGangBond2860EmulatorApp ¶ÔÏó CGangBond2860EmulatorApp theApp; // CGangBond2860EmulatorApp ³õʼ»¯ BOOL CGangBond2860EmulatorApp::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); // ¿Ø¼þ×¢²á CHmTab::RegisterWndClass(); // ³õʼ»¯BEQ¿â BEQ_Initialize(); CGangBond2860EmulatorDlg 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 != NULL) { delete pShellManager; } // ÓÉÓÚ¶Ô»°¿òÒѹرգ¬ËùÒÔ½«·µ»Ø FALSE ÒÔ±ãÍ˳öÓ¦ÓóÌÐò£¬ // ¶ø²»ÊÇÆô¶¯Ó¦ÓóÌÐòµÄÏûÏ¢±Ã¡£ return FALSE; } int CGangBond2860EmulatorApp::ExitInstance() { BEQ_Term(); return CWinApp::ExitInstance(); }