⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cedtapp.cpp

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// cedt.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "cedtHeader.h"
#include "registry.h"
#include "HtmlHelp.h"
#include <afxmt.h>


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// Shared data segment
#pragma data_seg("Shared")
DWORD	nFirstThreadID = 0;
HWND	hFirstWindow = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")


/////////////////////////////////////////////////////////////////////////////
// CCedtApp static member variables
CString CCedtApp::m_szInstallDirectory;
CString CCedtApp::m_szLoadingDirectory;

CString CCedtApp::m_szInitialWorkingDirectory;
CString CCedtApp::m_szRemoteBackupDirectory;

BOOL CCedtApp::m_bAllowMultiInstances = FALSE;
BOOL CCedtApp::m_bFirstInstance = TRUE;
BOOL CCedtApp::m_bDoubleByteCharacterSet = FALSE;

BOOL CCedtApp::m_bCreateNewDocumentOnStartup;
BOOL CCedtApp::m_bReloadWorkingFilesOnStartup;

// global cursor resources
HCURSOR CCedtApp::m_hCursorArrow, CCedtApp::m_hCursorIBeam, CCedtApp::m_hCursorCross; 
HCURSOR CCedtApp::m_hCursorRightArrow, CCedtApp::m_hCursorArrowMacro, CCedtApp::m_hCursorIBeamMacro;

// ftp accounts and file filters
CFtpAccount CCedtApp::m_clsFtpAccounts[MAX_FTP_ACCOUNT];
CFileFilter CCedtApp::m_clsFileFilters[MAX_FILE_FILTER];
INT CCedtApp::m_nFilterIndexDialog = 0;
INT CCedtApp::m_nFilterIndexPannel = 0;

// html help initialization
BOOL CCedtApp::m_bHtmlHelpInitialized = FALSE;
DWORD CCedtApp::m_dwHtmlHelpCookie = 0x00;

// open template
CString CCedtApp::m_szOpenTemplatePathName;
BOOL CCedtApp::m_bOpenTemplate;

/////////////////////////////////////////////////////////////////////////////
// CCedtApp

BEGIN_MESSAGE_MAP(CCedtApp, CWinApp)
	//{{AFX_MSG_MAP(CCedtApp)
	ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, OnUpdateFileMruFile1)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
	ON_COMMAND(ID_HELP_TOPICS, OnHelpTopics)
	ON_COMMAND(ID_HELP_VISIT_HOMEPAGE, OnHelpVisitHomepage)
	ON_COMMAND(ID_HELP_FEEDBACK, OnHelpFeedback)
	ON_COMMAND(ID_TOOL_PREFERENCES, OnToolPreferences)
	ON_COMMAND(ID_MACRO_CONFIGURE, OnMacroConfigure)
	ON_COMMAND(ID_COMMAND_CONFIGURE, OnCommandConfigure)
	ON_COMMAND(ID_VIEW_SET_COLORS, OnViewSetColors)
	ON_COMMAND(ID_FILE_FTP_SETTINGS, OnFileFtpSettings)
	ON_COMMAND(ID_FILE_OPEN_REMOTE, OnFileOpenRemote)
	ON_COMMAND(ID_FILE_OPEN_TEMPLATE, OnFileOpenTemplate)
	ON_COMMAND(ID_VIEW_SET_LINE_SPACING, OnViewSetLineSpacing)
	ON_COMMAND(ID_VIEW_SET_TAB_SIZE, OnViewSetTabSize)
	ON_COMMAND(ID_FILE_CLOSE_ALL, OnFileCloseAll)
	ON_COMMAND(ID_DOCU_SYNTAX_CUSTOMIZE, OnDocuSyntaxCustomize)
	ON_COMMAND(ID_VIEW_COLUMN_MARKERS, OnViewColumnMarkers)
	ON_COMMAND(ID_SEARCH_FIND_IN_FILES, OnSearchFindInFiles)
	ON_COMMAND(ID_PROJECT_NEW, OnProjectNew)
	ON_COMMAND(ID_PROJECT_OPEN, OnProjectOpen)
	ON_COMMAND(ID_PROJECT_CLOSE, OnProjectClose)
	ON_UPDATE_COMMAND_UI(ID_PROJECT_CLOSE, OnUpdateProjectClose)
	ON_COMMAND(ID_PROJECT_NEW_CATEGORY, OnProjectNewCategory)
	ON_UPDATE_COMMAND_UI(ID_PROJECT_NEW_CATEGORY, OnUpdateProjectNewCategory)
	ON_COMMAND(ID_PROJECT_ADD_FILES_TO, OnProjectAddFilesTo)
	ON_UPDATE_COMMAND_UI(ID_PROJECT_ADD_FILES_TO, OnUpdateProjectAddFilesTo)
	ON_COMMAND(ID_PROJECT_ADD_ACTIVE_FILE, OnProjectAddActiveFile)
	ON_UPDATE_COMMAND_UI(ID_PROJECT_ADD_ACTIVE_FILE, OnUpdateProjectAddActiveFile)
	ON_COMMAND(ID_PROJECT_ADD_OPEN_FILES, OnProjectAddOpenFiles)
	ON_UPDATE_COMMAND_UI(ID_PROJECT_ADD_OPEN_FILES, OnUpdateProjectAddOpenFiles)
	ON_COMMAND(ID_VIEW_SET_SCREEN_FONTS, OnViewSetScreenFonts)
	ON_COMMAND(ID_VIEW_SET_PRINTER_FONTS, OnViewSetPrinterFonts)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_USER_FILE0, OnUpdateCommandUserFile0)
	ON_UPDATE_COMMAND_UI(ID_MACRO_USER_FILE0, OnUpdateMacroUserFile0)
	ON_COMMAND(ID_COMMAND_USER_FILE0, OnCommandUserFile0)
	ON_COMMAND(ID_COMMAND_USER_FILE1, OnCommandUserFile1)
	ON_COMMAND(ID_COMMAND_USER_FILE2, OnCommandUserFile2)
	ON_COMMAND(ID_COMMAND_USER_FILE3, OnCommandUserFile3)
	ON_COMMAND(ID_COMMAND_USER_FILE4, OnCommandUserFile4)
	ON_COMMAND(ID_COMMAND_USER_FILE5, OnCommandUserFile5)
	ON_COMMAND(ID_COMMAND_USER_FILE6, OnCommandUserFile6)
	ON_COMMAND(ID_COMMAND_USER_FILE7, OnCommandUserFile7)
	ON_COMMAND(ID_MACRO_USER_FILE0, OnMacroUserFile0)
	ON_COMMAND(ID_MACRO_USER_FILE1, OnMacroUserFile1)
	ON_COMMAND(ID_MACRO_USER_FILE2, OnMacroUserFile2)
	ON_COMMAND(ID_MACRO_USER_FILE3, OnMacroUserFile3)
	ON_COMMAND(ID_MACRO_USER_FILE4, OnMacroUserFile4)
	ON_COMMAND(ID_MACRO_USER_FILE5, OnMacroUserFile5)
	ON_COMMAND(ID_MACRO_USER_FILE6, OnMacroUserFile6)
	ON_COMMAND(ID_MACRO_USER_FILE7, OnMacroUserFile7)
	ON_COMMAND(ID_EDIT_COLUMN_MODE, OnEditColumnMode)
	ON_UPDATE_COMMAND_UI(ID_EDIT_COLUMN_MODE, OnUpdateEditColumnMode)
	ON_COMMAND(ID_INDICATOR_OVR, OnIndicatorOvr)
	ON_COMMAND(ID_VIEW_LINE_NUMBERS, OnViewLineNumbers)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_NUMBERS, OnUpdateViewLineNumbers)
	ON_COMMAND(ID_VIEW_LINE_SPACING100, OnViewLineSpacing100)
	ON_COMMAND(ID_VIEW_LINE_SPACING110, OnViewLineSpacing110)
	ON_COMMAND(ID_VIEW_LINE_SPACING120, OnViewLineSpacing120)
	ON_COMMAND(ID_VIEW_LINE_SPACING150, OnViewLineSpacing150)
	ON_COMMAND(ID_VIEW_LINE_SPACING200, OnViewLineSpacing200)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_SPACING100, OnUpdateViewLineSpacing100)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_SPACING110, OnUpdateViewLineSpacing110)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_SPACING120, OnUpdateViewLineSpacing120)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_SPACING150, OnUpdateViewLineSpacing150)
	ON_UPDATE_COMMAND_UI(ID_VIEW_LINE_SPACING200, OnUpdateViewLineSpacing200)
	ON_COMMAND(ID_VIEW_SCREEN_FONT0, OnViewScreenFont0)
	ON_COMMAND(ID_VIEW_SCREEN_FONT1, OnViewScreenFont1)
	ON_COMMAND(ID_VIEW_SCREEN_FONT2, OnViewScreenFont2)
	ON_COMMAND(ID_VIEW_SCREEN_FONT3, OnViewScreenFont3)
	ON_COMMAND(ID_VIEW_SCREEN_FONT4, OnViewScreenFont4)
	ON_COMMAND(ID_VIEW_SCREEN_FONT5, OnViewScreenFont5)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT0, OnUpdateViewScreenFont0)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT1, OnUpdateViewScreenFont1)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT2, OnUpdateViewScreenFont2)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT3, OnUpdateViewScreenFont3)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT4, OnUpdateViewScreenFont4)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SCREEN_FONT5, OnUpdateViewScreenFont5)
	ON_COMMAND(ID_VIEW_PRINTER_FONT0, OnViewPrinterFont0)
	ON_COMMAND(ID_VIEW_PRINTER_FONT1, OnViewPrinterFont1)
	ON_COMMAND(ID_VIEW_PRINTER_FONT2, OnViewPrinterFont2)
	ON_COMMAND(ID_VIEW_PRINTER_FONT3, OnViewPrinterFont3)
	ON_UPDATE_COMMAND_UI(ID_VIEW_PRINTER_FONT0, OnUpdateViewPrinterFont0)
	ON_UPDATE_COMMAND_UI(ID_VIEW_PRINTER_FONT1, OnUpdateViewPrinterFont1)
	ON_UPDATE_COMMAND_UI(ID_VIEW_PRINTER_FONT2, OnUpdateViewPrinterFont2)
	ON_UPDATE_COMMAND_UI(ID_VIEW_PRINTER_FONT3, OnUpdateViewPrinterFont3)
	ON_COMMAND(ID_VIEW_TAB_SIZE02, OnViewTabSize02)
	ON_COMMAND(ID_VIEW_TAB_SIZE04, OnViewTabSize04)
	ON_COMMAND(ID_VIEW_TAB_SIZE08, OnViewTabSize08)
	ON_COMMAND(ID_VIEW_TAB_SIZE16, OnViewTabSize16)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_SIZE02, OnUpdateViewTabSize02)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_SIZE04, OnUpdateViewTabSize04)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_SIZE08, OnUpdateViewTabSize08)
	ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_SIZE16, OnUpdateViewTabSize16)
	ON_COMMAND(ID_VIEW_EMBOLDEN_KEYWORDS, OnViewEmboldenKeywords)
	ON_UPDATE_COMMAND_UI(ID_VIEW_EMBOLDEN_KEYWORDS, OnUpdateViewEmboldenKeywords)
	ON_COMMAND(ID_VIEW_ITALICIZE_COMMENT, OnViewItalicizeComment)
	ON_UPDATE_COMMAND_UI(ID_VIEW_ITALICIZE_COMMENT, OnUpdateViewItalicizeComment)
	ON_COMMAND(ID_VIEW_SHOW_SPACES, OnViewShowSpaces)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SHOW_SPACES, OnUpdateViewShowSpaces)
	ON_COMMAND(ID_VIEW_SHOW_TAB_CHARS, OnViewShowTabChars)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SHOW_TAB_CHARS, OnUpdateViewShowTabChars)
	ON_COMMAND(ID_VIEW_SHOW_LINE_BREAK, OnViewShowLineBreak)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SHOW_LINE_BREAK, OnUpdateViewShowLineBreak)
	ON_COMMAND(ID_HELP_SPONSORING, OnHelpSponsoring)
	ON_COMMAND(ID_DIRECTORY_ITEM_OPEN, OnDirectoryItemOpen)
	ON_COMMAND(ID_DIRECTORY_ITEM_EXECUTE, OnDirectoryItemExecute)
	ON_COMMAND(ID_DIRECTORY_ITEM_EXPLORE, OnDirectoryItemExplore)
	ON_COMMAND(ID_DIRECTORY_ITEM_FIND, OnDirectoryItemFind)
	ON_COMMAND(ID_DIRECTORY_ITEM_SETWORKDIR, OnDirectoryItemSetWorkdir)
	ON_COMMAND(ID_DIRECTORY_ITEM_MOVE, OnDirectoryItemMove)
	ON_COMMAND(ID_DIRECTORY_ITEM_COPY, OnDirectoryItemCopy)
	ON_COMMAND(ID_DIRECTORY_ITEM_RENAME, OnDirectoryItemRename)
	ON_COMMAND(ID_DIRECTORY_ITEM_DELETE, OnDirectoryItemDelete)
	ON_COMMAND(ID_DIRECTORY_ITEM_REFRESH, OnDirectoryItemRefresh)
	ON_COMMAND(ID_PROJECT_ITEM_OPEN, OnProjectItemOpen)
	ON_COMMAND(ID_PROJECT_ITEM_EXECUTE, OnProjectItemExecute)
	ON_COMMAND(ID_PROJECT_ITEM_REMOVE, OnProjectItemRemove)
	ON_COMMAND(ID_PROJECT_ITEM_RENAME, OnProjectItemRename)
	//}}AFX_MSG_MAP
	// Standard file based document commands
	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
	// Standard print setup command
	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCedtApp construction
CCedtApp::CCedtApp()
{
	m_bPostOpenDocument = FALSE;
	m_nPostOpenFtpAccount = -1;
	m_szPostOpenPathName = "";
	m_dwPostOpenFileSize = 0;
	m_nPostOpenLineNum = 0;

	m_szPrevWorkspacePathName = "";
	m_bProjectLoaded = FALSE;
	m_szProjectPathName = "";
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CCedtApp object
CCedtApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CCedtApp initialization
BOOL CCedtApp::InitInstance()
{
	// Change the registry key under which our settings are stored.
	SetRegistryKey(STRING_COMPANYNAME);

	// read InstallDir from the registry
	if( ! GetRegKeyValue(HKEY_LOCAL_MACHINE, REGPATH_INSTALL_DIRECTORY, "InstallDir", m_szInstallDirectory) ) {
		CString szMessage; szMessage.Format(IDS_ERR_REGISTRY, REGPATH_INSTALL_DIRECTORY);
		AfxMessageBox(szMessage, MB_OK | MB_ICONSTOP); return FALSE;
	}

	// get current working directory
	TCHAR szTemp[MAX_PATH]; GetCurrentDirectory(MAX_PATH, szTemp);
	m_szLoadingDirectory = ChopDirectory(szTemp);

	// load multi-instance flag
	m_bAllowMultiInstances = FALSE;
	if( ! LoadMultiInstancesFlag(REGKEY_ALLOW_MULTI) ) return FALSE;

	// is it first instance ?
	m_bFirstInstance = TRUE; 
	if( nFirstThreadID ) m_bFirstInstance = FALSE;

	if( ! m_bAllowMultiInstances && ! m_bFirstInstance ) {
		// do not allow multi-instance
		CMutex mutex(FALSE, MUTEX_NAME_CMDLINE);
		CSingleLock lock( & mutex ); lock.Lock();

		ofstream fout(m_szInstallDirectory + "\\cmdline.txt", ios::out | ios::app);
		fout << "/D:\"" << m_szLoadingDirectory << "\"";
		fout << " " << m_lpCmdLine << endl;
		fout.close(); 
		
		lock.Unlock();

		if( hFirstWindow && ::IsIconic(hFirstWindow) ) ShowWindow(hFirstWindow, SW_RESTORE);
		if( hFirstWindow ) ::SetForegroundWindow(hFirstWindow);
		::PostThreadMessage(nFirstThreadID, WM_ANOTHER_INSTANCE, 0, 0L);

		// ghost exit here !!!
		return FALSE; 

	} else {
		// otherwise save thread id for later use
		nFirstThreadID = m_nThreadID; 
	}

	// Initialize OLE 2.0 libraries
	if( ! AfxOleInit() ) {
		AfxMessageBox(IDS_ERR_OLE_INIT);
		return FALSE;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -