📄 cedtview.cpp
字号:
// 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 + -