📄 ccrystaleditview.h
字号:
// CrystalEditView.h : interface of the CCrystalEditView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_CRYSTALEDITVIEW_H__1C6DEAC4_B88C_4BCE_9556_1FE59ED4BF1E__INCLUDED_)
#define AFX_CRYSTALEDITVIEW_H__1C6DEAC4_B88C_4BCE_9556_1FE59ED4BF1E__INCLUDED_
#define TAB_CHARACTER _T('\xBB')
#define SPACE_CHARACTER _T('\x95')
#define DEFAULT_PRINT_MARGIN 1000 // 10 millimeters
#define SMOOTH_SCROLL_FACTOR 6
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "AFXRICH.H"
#include "DLLDocument.h"
#include "CCrystalTextBuffer.h"
#include <list>
#include <algorithm>
using namespace std;
typedef list<int> IntList;
class CCrystalEditCntrItem;
class CCrystalEditView : public CRichEditView
{
protected: // create from serialization only
CCrystalEditView();
DECLARE_DYNCREATE(CCrystalEditView)
// Attributes
public:
// CCrystalEditDoc* GetDocument();
BOOL m_bOvrMode;
CPoint m_ptCursorPos;
CPoint m_ptSelStart, m_ptSelEnd;
CPoint m_ptAnchor;
int m_nScreenLines, m_nScreenChars;
int m_nMaxLineLength;
int m_nIdealCharPos;
BOOL m_bFocused;
//-----------------
HACCEL m_hAccel;
BOOL m_bVertScrollBarLocked, m_bHorzScrollBarLocked;
CPoint m_ptDraggedTextBegin, m_ptDraggedTextEnd;
// Printing
int m_nPrintPages;
int *m_pnPages;
CFont *m_pPrintFont;
int m_nPrintLineHeight;
BOOL m_bPrintHeader, m_bPrintFooter;
CRect m_ptPageArea, m_rcPrintArea;
int m_nTopLine, m_nOffsetChar;
BOOL m_bSmoothScroll;
BOOL m_bLastSearch;
DWORD m_dwLastSearchFlags;
LPTSTR m_pszLastFindWhat;
BOOL m_bMultipleSearch; // More search
BOOL m_bCursorHidden;
// Painting caching bitmap
CBitmap *m_pCacheBitmap;
// Line/character dimensions
int m_nLineHeight, m_nCharWidth;
void CalcLineCharDim();
// Text attributes
int m_nTabSize;
BOOL m_bViewTabs;
BOOL m_bSelMargin;
LOGFONT m_lfBaseFont;
CFont *m_apFonts[4];
// Parsing stuff
DWORD *m_pdwParseCookies;
int m_nParseArraySize;
DWORD GetParseCookie(int nLineIndex);
// Pre-calculated line lengths (in characters)
int m_nActualLengthArraySize;
int *m_pnActualLineLength;
BOOL m_bPreparingToDrag;
BOOL m_bDraggingText;
BOOL m_bDragSelection, m_bWordSelection, m_bLineSelection;
UINT m_nDragSelTimer;
BOOL m_bBookmarkExist; // More bookmarks
BOOL m_bShowInactiveSelection;
CPoint m_ptDrawSelStart, m_ptDrawSelEnd;
// Operations
public:
CCrystalTextBuffer *m_pTextBuffer;
CPoint GetCursorPos();
int GetLineCount();
void SetSelection(const CPoint &ptStart, const CPoint &ptEnd);
void SetAnchor(const CPoint &ptNewAnchor);
void SetCursorPos(const CPoint &ptCursorPos);
void EnsureVisible(CPoint pt);
BOOL QueryEditable();
BOOL DeleteCurrentSelection();
void UpdateCaret();
BOOL IsSelection();
BOOL IsInsideSelection(const CPoint &ptTextPos);
void GetSelection(CPoint &ptStart, CPoint &ptEnd);
void PrepareSelBounds();
int GetScreenLines();
void ScrollToLine(int nNewTopLine, BOOL bNoSmoothScroll = FALSE, BOOL bTrackScrollBar = TRUE);
virtual void UpdateSiblingScrollPos(BOOL bHorz);
int CalculateActualOffset(int nLineIndex, int nCharIndex);
int GetScreenChars();
int GetMaxLineLength();
void ScrollToChar(int nNewOffsetChar, BOOL bNoSmoothScroll = FALSE, BOOL bTrackScrollBar = TRUE);
int GetLineHeight();
void RecalcVertScrollBar(BOOL bPositionOnly = FALSE);
void RecalcHorzScrollBar(BOOL bPositionOnly = FALSE);
CCrystalEditView *GetSiblingView(int nRow, int nCol);
virtual void OnUpdateSibling(CCrystalEditView *pUpdateSource, BOOL bHorz);
int GetLineLength(int nLineIndex);
LPCTSTR GetLineChars(int nLineIndex);
int GetTabSize();
int GetMarginWidth();
int GetCharWidth();
int GetLineActualLength(int nLineIndex);
void InvalidateLines(int nLine1, int nLine2, BOOL bInvalidateMargin = FALSE);
void AttachToBuffer(CCrystalTextBuffer *pBuf = NULL);
virtual CCrystalTextBuffer *LocateTextBuffer();
void ResetView();
void PaintLeft(); //画左边显示条
void AddRemoveBP(int point);//设置或删除断点
int m_LineHeight; //行高
IntList lBreakPoint; //断点行号
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCrystalEditView)
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(); // called first time after construct
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CCrystalEditView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CCrystalEditView)
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnPaint();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CRYSTALEDITVIEW_H__1C6DEAC4_B88C_4BCE_9556_1FE59ED4BF1E__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -