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

📄 cedtview.cpp

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

#include "stdafx.h"
#include "cedtHeader.h"
#include <imm.h>


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

/////////////////////////////////////////////////////////////////////////////
// CCedtView

IMPLEMENT_DYNCREATE(CCedtView, CView)

BEGIN_MESSAGE_MAP(CCedtView, CView)
	//{{AFX_MSG_MAP(CCedtView)
	ON_WM_ERASEBKGND()
	ON_WM_SETCURSOR()
	ON_WM_VSCROLL()
	ON_WM_HSCROLL()
	ON_WM_SETFOCUS()
	ON_WM_KILLFOCUS()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONDBLCLK()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_WM_TIMER()
	ON_COMMAND(ID_EDIT_RETURN, OnEditReturn)
	ON_COMMAND(ID_EDIT_BACK, OnEditBack)
	ON_COMMAND(ID_EDIT_ESCAPE, OnEditEscape)
	ON_COMMAND(ID_EDIT_DELETE, OnEditDelete)
	ON_COMMAND(ID_EDIT_SELECT_ALL, OnEditSelectAll)
	ON_COMMAND(ID_EDIT_SELECT_LINE, OnEditSelectLine)
	ON_COMMAND(ID_EDIT_SELECT_WORD, OnEditSelectWord)
	ON_COMMAND(ID_VIEW_WORD_WRAP, OnViewWordWrap)
	ON_UPDATE_COMMAND_UI(ID_VIEW_WORD_WRAP, OnUpdateViewWordWrap)
	ON_COMMAND(ID_EDIT_INSERT_DATE, OnEditInsertDate)
	ON_COMMAND(ID_EDIT_INSERT_TIME, OnEditInsertTime)
	ON_COMMAND(ID_EDIT_INSERT_FILE, OnEditInsertFile)
	ON_COMMAND(ID_EDIT_CUT, OnEditCut)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
	ON_COMMAND(ID_EDIT_CUT_APPEND, OnEditCutAppend)
	ON_COMMAND(ID_EDIT_COPY_APPEND, OnEditCopyAppend)
	ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy)
	ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut)
	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
	ON_COMMAND(ID_EDIT_TAB, OnEditTab)
	ON_COMMAND(ID_EDIT_DETAB, OnEditDetab)
	ON_COMMAND(ID_EDIT_JOIN_LINES, OnEditJoinLines)
	ON_COMMAND(ID_EDIT_SPLIT_LINE, OnEditSplitLine)
	ON_COMMAND(ID_EDIT_DELETE_LINE, OnEditDeleteLine)
	ON_COMMAND(ID_EDIT_DUPLICATE_LINE, OnEditDuplicateLine)
	ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
	ON_COMMAND(ID_EDIT_REDO, OnEditRedo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo)
	ON_COMMAND(ID_SEARCH_FIND, OnSearchFind)
	ON_COMMAND(ID_SEARCH_REPLACE, OnSearchReplace)
	ON_COMMAND(ID_SEARCH_GO_TO, OnSearchGoTo)
	ON_COMMAND(ID_SEARCH_ASK_REPLACE, OnSearchAskReplace)
	ON_COMMAND(ID_SEARCH_TOGGLE_BOOKMARK, OnSearchToggleBookmark)
	ON_COMMAND(ID_SEARCH_NEXT_BOOKMARK, OnSearchNextBookmark)
	ON_COMMAND(ID_SEARCH_PREV_BOOKMARK, OnSearchPrevBookmark)
	ON_COMMAND(ID_MACRO_BEGIN_RECORDING, OnMacroBeginRecording)
	ON_COMMAND(ID_MACRO_END_RECORDING, OnMacroEndRecording)
	ON_UPDATE_COMMAND_UI(ID_MACRO_BEGIN_RECORDING, OnUpdateMacroBeginRecording)
	ON_UPDATE_COMMAND_UI(ID_MACRO_END_RECORDING, OnUpdateMacroEndRecording)
	ON_COMMAND(ID_MACRO_REPLAY, OnMacroReplay)
	ON_COMMAND(ID_MACRO_REPLAY1, OnMacroReplay1)
	ON_COMMAND(ID_MACRO_REPLAY2, OnMacroReplay2)
	ON_COMMAND(ID_MACRO_REPLAY3, OnMacroReplay3)
	ON_COMMAND(ID_MACRO_REPLAY4, OnMacroReplay4)
	ON_COMMAND(ID_MACRO_REPLAY5, OnMacroReplay5)
	ON_COMMAND(ID_MACRO_REPLAY6, OnMacroReplay6)
	ON_COMMAND(ID_MACRO_REPLAY7, OnMacroReplay7)
	ON_COMMAND(ID_MACRO_REPLAY8, OnMacroReplay8)
	ON_COMMAND(ID_MACRO_REPLAY9, OnMacroReplay9)
	ON_COMMAND(ID_MACRO_REPLAY0, OnMacroReplay0)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY, OnUpdateMacroReplay)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY1, OnUpdateMacroReplay1)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY2, OnUpdateMacroReplay2)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY3, OnUpdateMacroReplay3)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY4, OnUpdateMacroReplay4)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY5, OnUpdateMacroReplay5)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY6, OnUpdateMacroReplay6)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY7, OnUpdateMacroReplay7)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY8, OnUpdateMacroReplay8)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY9, OnUpdateMacroReplay9)
	ON_UPDATE_COMMAND_UI(ID_MACRO_REPLAY0, OnUpdateMacroReplay0)
	ON_COMMAND(ID_VIEW_SPELL_CHECK, OnViewSpellCheck)
	ON_UPDATE_COMMAND_UI(ID_VIEW_SPELL_CHECK, OnUpdateViewSpellCheck)
	ON_WM_SIZE()
	ON_WM_CONTEXTMENU()
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_COMMAND_EXECUTE0, OnCommandExecute0)
	ON_COMMAND(ID_COMMAND_EXECUTE1, OnCommandExecute1)
	ON_COMMAND(ID_COMMAND_EXECUTE2, OnCommandExecute2)
	ON_COMMAND(ID_COMMAND_EXECUTE3, OnCommandExecute3)
	ON_COMMAND(ID_COMMAND_EXECUTE4, OnCommandExecute4)
	ON_COMMAND(ID_COMMAND_EXECUTE5, OnCommandExecute5)
	ON_COMMAND(ID_COMMAND_EXECUTE6, OnCommandExecute6)
	ON_COMMAND(ID_COMMAND_EXECUTE7, OnCommandExecute7)
	ON_COMMAND(ID_COMMAND_EXECUTE8, OnCommandExecute8)
	ON_COMMAND(ID_COMMAND_EXECUTE9, OnCommandExecute9)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE0, OnUpdateCommandExecute0)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE1, OnUpdateCommandExecute1)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE2, OnUpdateCommandExecute2)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE3, OnUpdateCommandExecute3)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE4, OnUpdateCommandExecute4)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE5, OnUpdateCommandExecute5)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE6, OnUpdateCommandExecute6)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE7, OnUpdateCommandExecute7)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE8, OnUpdateCommandExecute8)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_EXECUTE9, OnUpdateCommandExecute9)
	ON_COMMAND(ID_EDIT_UPPER_CASE, OnEditUpperCase)
	ON_COMMAND(ID_EDIT_LOWER_CASE, OnEditLowerCase)
	ON_COMMAND(ID_EDIT_CAPITALIZE, OnEditCapitalize)
	ON_COMMAND(ID_EDIT_INVERT_CASE, OnEditInvertCase)
	ON_COMMAND(ID_SEARCH_PREV_EDIT, OnSearchPrevEdit)
	ON_COMMAND(ID_SEARCH_PAIRS_BEGIN, OnSearchPairsBegin)
	ON_COMMAND(ID_SEARCH_PAIRS_END, OnSearchPairsEnd)
	ON_COMMAND(ID_EDIT_MAKE_COMMENT, OnEditMakeComment)
	ON_COMMAND(ID_EDIT_RELEASE_COMMENT, OnEditReleaseComment)
	ON_COMMAND(ID_MOVE_CARET_LEFT, OnMoveCaretLeft)
	ON_COMMAND(ID_MOVE_CARET_RIGHT, OnMoveCaretRight)
	ON_COMMAND(ID_MOVE_CARET_UP, OnMoveCaretUp)
	ON_COMMAND(ID_MOVE_CARET_DOWN, OnMoveCaretDown)
	ON_COMMAND(ID_TOOL_MS_DOS_SHELL, OnToolMsDosShell)
	ON_COMMAND(ID_TOOL_VIEW_IN_BROWSER, OnToolViewInBrowser)
	ON_COMMAND(ID_EDIT_INCREASE_INDENT, OnEditIncreaseIndent)
	ON_COMMAND(ID_EDIT_DECREASE_INDENT, OnEditDecreaseIndent)
	ON_COMMAND(ID_EDIT_SELECT_BLOCK, OnEditSelectBlock)
	ON_COMMAND(ID_EDIT_CONVERT_TABS_TO_SPACES, OnEditConvertTabsToSpaces)
	ON_COMMAND(ID_EDIT_REMOVE_TRAILING_SPACES, OnEditRemoveTrailingSpaces)
	ON_COMMAND(ID_EDIT_DELETE_WORD, OnEditDeleteWord)
	ON_COMMAND(ID_EDIT_DELETE_TO_END_OF_LINE, OnEditDeleteToEndOfLine)
	ON_COMMAND(ID_EDIT_DELETE_PREV_WORD, OnEditDeletePrevWord)
	ON_COMMAND(ID_COMMAND_SEND_INPUT, OnCommandSendInput)
	ON_COMMAND(ID_COMMAND_KILL_PROCESS, OnCommandKillProcess)
	ON_COMMAND(ID_TOOL_EVALUATE_LINE, OnToolEvaluateLine)
	ON_COMMAND(ID_SEARCH_NEXT_WORD, OnSearchNextWord)
	ON_COMMAND(ID_SEARCH_PREV_WORD, OnSearchPrevWord)
	ON_COMMAND(ID_SEARCH_REPALL_IN_SELECTION, OnSearchReplaceAllInSelection)
	ON_COMMAND(ID_SEARCH_REPALL_IN_FILE, OnSearchReplaceAllInFile)
	ON_COMMAND(ID_SEARCH_REPALL_IN_OPEN_FILES, OnSearchReplaceAllInOpenFiles)
	ON_COMMAND(ID_SEARCH_REPLACE_THIS, OnSearchReplaceThisOccurrence)
	ON_COMMAND(ID_EDIT_CONVERT_SPACES_TO_TABS, OnEditConvertSpacesToTabs)
	ON_COMMAND(ID_EDIT_LEADING_SPACES_TO_TABS, OnEditLeadingSpacesToTabs)
	ON_COMMAND(ID_EDIT_COPY_FILE_PATH, OnEditCopyFilePath)
	ON_COMMAND(ID_MOVE_CARET_HOME, OnMoveCaretHome)
	ON_COMMAND(ID_MOVE_CARET_END, OnMoveCaretEnd)
	ON_COMMAND(ID_MOVE_CARET_PRIOR, OnMoveCaretPrior)
	ON_COMMAND(ID_MOVE_CARET_NEXT, OnMoveCaretNext)
	ON_WM_RBUTTONUP()
	ON_COMMAND(ID_EDIT_DELETE_TO_BEGIN_OF_LINE, OnEditDeleteToBeginOfLine)
	ON_COMMAND(ID_SEARCH_REPALL_IN_FILE_OUTPUT, OnSearchReplaceAllInFileOutputWindow)
	ON_COMMAND(ID_SEARCH_NEXT_OCCURRENCE, OnSearchNextOccurrence)
	ON_COMMAND(ID_SEARCH_PREV_OCCURRENCE, OnSearchPrevOccurrence)
	ON_COMMAND(ID_SEARCH_FIND_NEXT, OnSearchFindNext)
	ON_COMMAND(ID_SEARCH_FIND_PREV, OnSearchFindPrev)
	ON_UPDATE_COMMAND_UI(ID_SEARCH_FIND_NEXT, OnUpdateSearchFindNext)
	ON_UPDATE_COMMAND_UI(ID_SEARCH_FIND_PREV, OnUpdateSearchFindPrev)
	ON_COMMAND(ID_SCROLL_SCREEN_TOP, OnScrollScreenTop)
	ON_COMMAND(ID_SCROLL_SCREEN_BOTTOM, OnScrollScreenBottom)
	ON_WM_MOUSEWHEEL()
	ON_COMMAND(ID_SCROLL_SCREEN_CENTER, OnScrollScreenCenter)
	ON_WM_CREATE()
	ON_UPDATE_COMMAND_UI(ID_COMMAND_SEND_INPUT, OnUpdateCommandSendInput)
	ON_UPDATE_COMMAND_UI(ID_COMMAND_KILL_PROCESS, OnUpdateCommandKillProcess)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCedtView static member variables

// general preferences
COLORREF CCedtView::m_crBkgrColor[10], CCedtView::m_crTextColor[40];
LOGFONT  CCedtView::m_lfScreen[10], CCedtView::m_lfPrinter[10];
LOGFONT  CCedtView::m_lfMiscel[10];
INT  CCedtView::m_nCurrentScreenFont, CCedtView::m_nCurrentPrinterFont;
BOOL CCedtView::m_bUsingColumnModeFont = FALSE;

BOOL CCedtView::m_bShowLineNumbers, CCedtView::m_bSyntaxHighlight;
BOOL CCedtView::m_bEmboldenKeywords, CCedtView::m_bItalicizeComment;
BOOL CCedtView::m_bHighlightActiveLine, CCedtView::m_bUseSpacesInPlaceOfTab;
BOOL CCedtView::m_bEnablePairsMatching, CCedtView::m_bEnableAutoIndent;
BOOL CCedtView::m_bShowSelectionMargin;
BOOL CCedtView::m_bHomeKeyGoesToFirstPosition, CCedtView::m_bSearchWrapAtEndOfFile;
BOOL CCedtView::m_bEnableDragAndDropEditing, CCedtView::m_bOpenDocumentWordWrapped;
BOOL CCedtView::m_bShowSpaces, CCedtView::m_bShowTabChars, CCedtView::m_bShowLineBreak;
INT  CCedtView::m_nTabSize, CCedtView::m_nLineSpacing, CCedtView::m_nLineNumberDigits;
INT  CCedtView::m_nCaretWidthRatio, CCedtView::m_nFileTabLength;
INT  CCedtView::m_nFixedWrapWidth, CCedtView::m_nWrapIndentation;
BOOL CCedtView::m_bShowColumnMarker1, CCedtView::m_bShowColumnMarker2;
INT  CCedtView::m_nColumnMarker1Pos, CCedtView::m_nColumnMarker2Pos;

// printing preferences
RECT CCedtView::m_rectPageMargin;
BOOL CCedtView::m_bPrintLineNumbers, CCedtView::m_bPrintSyntaxHighlight;
BOOL CCedtView::m_bPrintHeader, CCedtView::m_bPrintFooter;
CString CCedtView::m_szHeaderFormat[3], CCedtView::m_szFooterFormat[3];
CString CCedtView::m_szHeaderString[3], CCedtView::m_szFooterString[3];

// global view mode
BOOL CCedtView::m_bOverwriteMode = FALSE;
BOOL CCedtView::m_bColumnMode = FALSE;

// search related variables
BOOL CCedtView::m_bReplaceSearch = FALSE;
CString CCedtView::m_szFindString, CCedtView::m_szReplaceString;
UINT CCedtView::m_nSearchOptions;
CRegExp CCedtView::m_clsRegExp;

// user commands
CUserCommand CCedtView::m_clsUserCommand[11];
CString CCedtView::m_szUserCommandFilePath[8];

// user command input & output
BOOL CCedtView::m_bChildOutputLineContinue = FALSE;
CStringArray CCedtView::m_arrChildInputString;

// redirect handles
HANDLE CCedtView::m_hChildStdinWrDup = NULL, CCedtView::m_hChildStdoutRdDup = NULL;
HANDLE CCedtView::m_hChildProcess = NULL, CCedtView::m_hChildThread = NULL;

// user macro buffers
CMacroBuffer CCedtView::m_clsMacroBuffer[11];
CString CCedtView::m_szMacroBufferFilePath[8];

// macro recording variables
BOOL CCedtView::m_bMacroRecording = FALSE;
INT CCedtView::m_nMacroRecordingNumber;
CString CCedtView::m_szMacroName;

// global screen resources
CDC CCedtView::m_dcScreen;
CBitmap CCedtView::m_bmScreen;
CFont CCedtView::m_fontScreen, CCedtView::m_fontScreenIt;
CFont CCedtView::m_fontPrinter, CCedtView::m_fontPrinterIt;
INT CCedtView::m_nScreenFontChangeSequence = 0;

// window placement
WINDOWPLACEMENT * CCedtView::m_lpWindowPlacement = NULL;

/////////////////////////////////////////////////////////////////////////////
// CCedtView construction/destruction

CCedtView::CCedtView()
{
	// view status
	m_bHaveFocus = m_bAutoScroll = m_bLineSelect = FALSE;
	m_szPrevClientSize = CSize(0, 0);
	m_ptRButtonUpPoint = CPoint(0, 0);

	// Drag and Drop
	m_bDragDataSource = m_bDragDropOccured = FALSE;
}

CCedtView::~CCedtView()
{
}

/////////////////////////////////////////////////////////////////////////////
// CCedtView drawing

BOOL CCedtView::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

void CCedtView::OnDraw(CDC* pDC)
{
	// check if this view is active
	CMainFrame * pMainFrame = (CMainFrame *)AfxGetMainWnd();
	CChildFrame * pChild = (CChildFrame *)GetParentFrame();
	BOOL bActiveView = ( pMainFrame->MDIGetActive() == pChild );

	// hide caret before drawing screen
	if( bActiveView && m_bHaveFocus ) HideCaret();

	// update scroll bar
	UpdateScrollBars();

	// prepare screen resources for drawing
	m_dcScreen.SetMapMode( MM_TEXT );
	m_dcScreen.SetBkMode( TRANSPARENT );

	// draw screen !
	DrawScreenBackgroundAndText();
	if( m_bSelected || m_bComposition ) InvertScreenSelected();

	m_bActiveLineHighlighted = FALSE;
	if( m_bHighlightActiveLine || m_crBkgrColor[0] != m_crBkgrColor[2] ) DrawActiveLineHighlight();
	if( m_bShowColumnMarker1 || m_bShowColumnMarker2 ) DrawColumnMarkerHighlight();

	RECT rect; GetClientRect( & rect );
	pDC->BitBlt(0, 0, rect.right, rect.bottom, & m_dcScreen, 0, 0, SRCCOPY);

	// there is no pairs highlighted
	m_bPairHighlighted[0] = m_bPairHighlighted[1] = FALSE;

	if( bActiveView && m_bHaveFocus ) {
		ShowCaret(); // make caret visible
		UpdateCaretPosition(); // create new caret and update caret position
	}

	if( bActiveView ) UpdateFileStatusPane(); // update file format & read only attribute
	UpdateMDIFileTabOfTheDocument(); // update file selection tab
}


/////////////////////////////////////////////////////////////////////////////
// CCedtView diagnostics

#ifdef _DEBUG
void CCedtView::AssertValid() const
{
	CView::AssertValid();
}

void CCedtView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCedtView member functions

// this function is called from CMainFrame::OnSize()
void CCedtView::OnSizeMainWindow(int cx, int cy)
{
	CClientDC dc(AfxGetMainWnd());

	if( m_dcScreen.m_hDC ) {
		m_bmScreen.DeleteObject();
		m_dcScreen.DeleteDC();
	}

	m_dcScreen.CreateCompatibleDC( & dc );
	m_bmScreen.CreateCompatibleBitmap( & dc, cx, cy );
	m_dcScreen.SelectObject( & m_bmScreen );

	CreateScreenFontObject();
	ApplyCurrentScreenFont();
}

void CCedtView::OnInitialUpdate() 
{
	CView::OnInitialUpdate();

	CCedtApp * pApp = (CCedtApp *)AfxGetApp(); ASSERT( pApp );
	INT nTotalViewCount = pApp->GetViewCount();

	CCedtDoc * pDoc = (CCedtDoc *)GetDocument(); ASSERT( pDoc );
	INT nViewCount = pDoc->GetViewCount();

	CChildFrame * pChild = (CChildFrame *)GetParentFrame(); ASSERT( pChild );
	INT nPaneCount = pChild->GetPaneCount();

	// set window placement and maximize child frame if this is the first view
	if( m_lpWindowPlacement ) pChild->SetWindowPlacement( m_lpWindowPlacement );
	else if( nTotalViewCount < 2 ) pChild->MDIMaximize();

	CMainFrame * pFrame = (CMainFrame *)AfxGetMainWnd(); ASSERT( pFrame );
	CCedtView * pView = NULL;

	if( nViewCount > 1 ) pView = (CCedtView *)pFrame->MDIGetActiveView();
	if( nPaneCount > 1 ) pView = (CCedtView *)pChild->GetNeighborPane(this);
	if( pView ) ASSERT( pDoc == pView->GetDocument() );

	// caret position
	if( pView ) { 
		m_nScrollPosX = pView->m_nScrollPosX;	m_nScrollPosY = pView->m_nScrollPosY;
		m_nAnchorPosX = pView->m_nAnchorPosX;	m_nAnchorPosY = pView->m_nAnchorPosY;
		m_nCaretPosX  = pView->m_nCaretPosX;	m_nCaretPosY  = pView->m_nCaretPosY;
		m_nCaretPosXFixed = pView->m_nCaretPosXFixed;
	} else {
		m_nScrollPosX = m_nScrollPosY = 0;
		m_nAnchorPosX = m_nAnchorPosY = 0;
		m_nCaretPosX  = m_nCaretPosY  = 0;
		m_nCaretPosXFixed = 0;
	}

	// display options
	if( pView ) {
		m_bLocalWordWrap = pView->m_bLocalWordWrap;
		m_bLocalSpellCheck = pView->m_bLocalSpellCheck;
	} else {
		m_bLocalWordWrap = m_bColumnMode ? FALSE : m_bOpenDocumentWordWrapped;
		m_bLocalSpellCheck = FALSE;
	}

	// active line highlight
	m_bActiveLineHighlighted = FALSE;
	m_nActiveLineHighlightedPosY = 0;

	// pairs highlight
	m_bPairMatched = FALSE; m_bBeginningPair = FALSE;
	m_nPairPosX[0] = m_nPairPosX[1] = m_nPairPosY[0] = m_nPairPosY[1] = 0;
	m_bPairHighlighted[0] = m_bPairHighlighted[1] = FALSE;

	// imm composition
	m_bComposition = FALSE;


	// saved index (save & restore caret and scroll pos)
	m_nCaretIdxX = m_nCaretIdxY = 0;
	m_nAnchorIdxX = m_nAnchorIdxY = 0;
	m_nScrollIdxX = m_nScrollIdxY = 0;

	// saved selection
	m_nSaveSelBegX = m_nSaveSelBegY = 0;
	m_nSaveSelEndX = m_nSaveSelEndY = 0;
	m_bSaveSelected = m_bSelected = FALSE;

	// update file selection tab
	UpdateMDIFileTabOfTheDocument();

	// initial formatting
	FormatScreenText();
}

void CCedtView::Reinitialize() 

⌨️ 快捷键说明

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