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

📄 cedtviewhndredit.cpp

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

#include "FindDialog.h"
#include "ReplaceDialog.h"
#include "AskReplaceDialog.h"
#include "GoToDialog.h"


/////////////////////////////////////////////////////////////////////////////
// CARET MOVEMENT
void CCedtView::OnMoveKeyDown(UINT nChar, UINT nFlags)
{
	BOOL bRedraw = EventMoveCaret(nChar, nFlags, FALSE);
	if( IsMacroRecording() ) MacroRecordMove(nChar, nFlags);

	SetScrollPosToMakeCaretVisible();
	if( bRedraw ) { Invalidate(); UpdateWindow(); UpdateAllViews(); }
	else UpdateCaretPosition();
}


/////////////////////////////////////////////////////////////////////////////
// BASIC EDITING
void CCedtView::OnCharKeyDown(UINT nChar)
{
	BeginActionRecording(TRUE);

	EventInsertChar(nChar, FALSE);
	if( IsMacroRecording() ) MacroRecordChar(nChar);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnDBCharKeyDown(UINT nCH1, UINT nCH2)
{
	TCHAR szBuf[3]; szBuf[0] = nCH1; szBuf[1] = nCH2; szBuf[2] = '\0';

	BeginActionRecording(TRUE);

	EventInsertString(szBuf, FALSE);
	if( IsMacroRecording() ) MacroRecordString(szBuf);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnImeCompositionStart()
{
	EventCompositionStart(FALSE);
}

void CCedtView::OnImeCompositionEnd()
{
	BeginActionRecording(TRUE);

	EventCompositionEnd(FALSE);
//	if( IsMacroRecording() ) MacroRecordNull();

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnImeCompositionCompose(LPCTSTR lpszString)
{
	BeginActionRecording(TRUE);

	EventCompositionCompose(lpszString, FALSE);
//	if( IsMacroRecording() ) MacroRecordNull();

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnImeCompositionResult(LPCTSTR lpszString)
{
	BeginActionRecording(TRUE);

	EventCompositionResult(lpszString, FALSE);
	if( IsMacroRecording() ) MacroRecordString(lpszString);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditEscape() 
{
	EventCommandEscape(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_ESCAPE);

	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditReturn() 
{
	BeginActionRecording(TRUE);

	EventCommandReturn(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_RETURN);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditBack() 
{
	BeginActionRecording(TRUE);

	EventCommandBack(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_BACK);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDelete() 
{
	BeginActionRecording(TRUE);

	EventCommandDelete(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditTab() 
{
	BeginActionRecording(TRUE);

	EventCommandTab(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_TAB);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDetab() 
{
	BeginActionRecording(TRUE);

	EventCommandDetab(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DETAB);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

/////////////////////////////////////////////////////////////////////////////
// ADVANCED EDITING
void CCedtView::OnEditIncreaseIndent() 
{
	BeginActionRecording(TRUE);

	EventIncreaseIndent(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INCREASE_INDENT);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDecreaseIndent() 
{
	BeginActionRecording(TRUE);

	EventDecreaseIndent(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DECREASE_INDENT);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditMakeComment() 
{
	BeginActionRecording(TRUE);

	EventMakeComment(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_ADD_COMMENT);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditReleaseComment() 
{
	BeginActionRecording(TRUE);

	EventReleaseComment(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_REMOVE_COMMENT);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditJoinLines() 
{
	BeginActionRecording(TRUE);

	EventJoinLines(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_JOIN_LINES);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditSplitLine() 
{
	BeginActionRecording(TRUE);

	EventSplitLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SPLIT_LINE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDeleteWord() 
{
	BeginActionRecording(TRUE);

	EventDeleteWord(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_WORD);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDeletePrevWord() 
{
	BeginActionRecording(TRUE);

	EventDeletePrevWord(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_PREV_WORD);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDeleteToEndOfLine() 
{
	BeginActionRecording(TRUE);

	EventDeleteToEndOfLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_TO_END_OF_LINE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDeleteToBeginOfLine() 
{
	BeginActionRecording(TRUE);

	EventDeleteToBeginOfLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_TO_BEGIN_OF_LINE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDeleteLine() 
{
	BeginActionRecording(TRUE);

	EventDeleteLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_LINE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditDuplicateLine() 
{
	BeginActionRecording(TRUE);

	EventDuplicateLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DUPLICATE_LINE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

/////////////////////////////////////////////////////////////////////////////
// COPY & PASTE
void CCedtView::OnEditCut() 
{
	BeginActionRecording(TRUE);

	EventCommandCut(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_CUT);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditCopy() 
{
	EventCommandCopy(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY);
}

void CCedtView::OnEditCopyFilePath() 
{
	EventCommandCopyFilePath(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY_FILE_PATH);
}

void CCedtView::OnEditCutAppend() 
{
	BeginActionRecording(TRUE);

	EventCommandCutAppend(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_CUT_APPEND);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditCopyAppend() 
{
	EventCommandCopyAppend(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY_APPEND);
}

void CCedtView::OnEditPaste() 
{
	BeginActionRecording(TRUE);

	EventCommandPaste(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_PASTE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

/////////////////////////////////////////////////////////////////////////////
// DRAG & DROP
void CCedtView::OnDragAndDrop(HGLOBAL hMemory)
{
	BeginActionRecording(TRUE);

	EventDragDelete(FALSE);
	EventDragAdjust(FALSE);
	EventDropPaste(hMemory, FALSE);
//	if( IsMacroRecording() ) MacroRecordCommand(ID_DRAG_AND_DROP);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnDragDelete()
{
	BeginActionRecording(TRUE);

	EventDragDelete(FALSE);
//	if( IsMacroRecording() ) MacroRecordCommand(ID_DRAG_DELETE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnDropEscape()
{
	EventDropEscape(FALSE);
//	if( IsMacroRecording() ) MacroRecordCommand(ID_DROP_ESCAPE);

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnDropPaste(HGLOBAL hMemory)
{
	BeginActionRecording(TRUE);

	EventDropPaste(hMemory, FALSE);
//	if( IsMacroRecording() ) MacroRecordCommand(ID_DROP_PASTE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

/////////////////////////////////////////////////////////////////////////////
// INSERT TEXT
void CCedtView::OnEditInsertDate() 
{
	BeginActionRecording(TRUE);

	EventInsertString(GetCurrentDate() + CString(" "), FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INSERT_DATE);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditInsertTime() 
{
	BeginActionRecording(TRUE);

	EventInsertString(GetCurrentTime() + CString(" "), FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INSERT_TIME);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditInsertFile() 
{
	DWORD dwFlags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;
	CString szFilter = CCedtApp::GetComposedFileFilter();
	CFileDialog dlg(TRUE, NULL, NULL, dwFlags, szFilter);

	TCHAR szCurrentDirectory[MAX_PATH];
	GetCurrentDirectory( MAX_PATH, szCurrentDirectory );

	static TCHAR szInitialDirectory[MAX_PATH] = "";
	if( ! strlen( szInitialDirectory ) ) strcpy( szInitialDirectory, szCurrentDirectory );

	CString szTitle; szTitle.LoadString(IDS_DLG_INSERT_FILE); 
	dlg.m_ofn.lpstrTitle = szTitle; dlg.m_ofn.lpstrInitialDir = szInitialDirectory;
	dlg.m_ofn.nFilterIndex = CCedtApp::GetFilterIndexDialog() + 1;
	if( dlg.DoModal() != IDOK ) return;

	GetCurrentDirectory( MAX_PATH, szInitialDirectory );
	SetCurrentDirectory( szCurrentDirectory );

	CCedtApp::SetFilterIndexDialog(dlg.m_ofn.nFilterIndex - 1);
	CString szPathName = dlg.GetPathName();



	BeginActionRecording(TRUE);

	EventInsertFile(szPathName, FALSE);
	if( IsMacroRecording() ) MacroRecordFile(szPathName);

	EndActionRecording();
	EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

/////////////////////////////////////////////////////////////////////////////
// SELECTING
void CCedtView::OnEditSelectAll() 
{
	EventSelectAll(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SELECT_ALL);

	SetScrollPosToMakeCaretVisible();
	Invalidate(); UpdateWindow(); UpdateAllViews();
}

void CCedtView::OnEditSelectLine() 
{
	EventSelectLine(FALSE);
	if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SELECT_LINE);

⌨️ 快捷键说明

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