亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ccrystaltextbuffer.h

?? 一個類似VB代碼編輯器.通過一個多文檔模板導出
?? H
字號:
#if !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
#define AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
//#include "CCrystalEditView.h"
#ifndef __AFXTEMPL_H__
#pragma message("Include <afxtempl.h> in your stdafx.h to avoid this message")
#include <afxtempl.h>
#endif

#define UNDO_DESCRIP_BUF        32
class CCrystalEditView;
enum LINEFLAGS
{
	LF_BOOKMARK_FIRST			= 0x00000001L,
	LF_EXECUTION				= 0x00010000L,
	LF_BREAKPOINT				= 0x00020000L,
	LF_COMPILATION_ERROR		= 0x00040000L,
	LF_BOOKMARKS	        	= 0x00080000L,
	LF_INVALID_BREAKPOINT       = 0x00100000L
};

#define LF_BOOKMARK(id)		(LF_BOOKMARK_FIRST << id)

enum CRLFSTYLE
{
	CRLF_STYLE_AUTOMATIC	= -1,
	CRLF_STYLE_DOS			= 0,
	CRLF_STYLE_UNIX			= 1,
	CRLF_STYLE_MAC			= 2
};

enum
{
	CE_ACTION_UNKNOWN		= 0,
	CE_ACTION_PASTE			= 1,
	CE_ACTION_DELSEL		= 2,
	CE_ACTION_CUT			= 3,
	CE_ACTION_TYPING		= 4,
	CE_ACTION_BACKSPACE		= 5,
	CE_ACTION_INDENT		= 6,
	CE_ACTION_DRAGDROP		= 7,
	CE_ACTION_REPLACE		= 8,
	CE_ACTION_DELETE		= 9,
	CE_ACTION_AUTOINDENT	= 10
	//	...
	//	Expandable: user actions allowed
};


/////////////////////////////////////////////////////////////////////////////
// CUpdateContext class

class CUpdateContext
{
public:
	virtual void RecalcPoint(CPoint &ptPoint) = 0;
};


/////////////////////////////////////////////////////////////////////////////
// CCrystalTextBuffer command target

class  CCrystalTextBuffer : public CCmdTarget
{
	DECLARE_DYNCREATE(CCrystalTextBuffer)

private:
	BOOL m_bInit;
	BOOL m_bReadOnly;
	BOOL m_bModified;
	int m_nCRLFMode;
	BOOL m_bCreateBackupFile;
	int m_nUndoBufSize;
	int FindLineWithFlag(DWORD dwFlag);

protected:
#pragma pack(push, 1)
	//	Nested class declarations
	struct SLineInfo
	{
		TCHAR	*m_pcLine;
		int		m_nLength, m_nMax;
		DWORD	m_dwFlags;

		SLineInfo() { memset(this, 0, sizeof(SLineInfo)); };
	};

	enum
	{
		UNDO_INSERT			= 0x0001,
		UNDO_BEGINGROUP		= 0x0100
	};

	//	[JRT] Support For Descriptions On Undo/Redo Actions
	struct SUndoRecord
	{
		DWORD	m_dwFlags;

		CPoint	m_ptStartPos, m_ptEndPos;			//	Block of text participating
		int		m_nAction;							//	For information only: action type

	private:
		//	TCHAR	*m_pcText;
		//	Since in most cases we have 1 character here, 
		//	we should invent a better way. Note: 2 * sizeof(WORD) <= sizeof(TCHAR*)
		//
		//	Here we will use the following trick: on Win32 platforms high-order word
		//	of any pointer will be != 0. So we can store 1 character strings without
		//	allocating memory.
		//

		union
		{
			TCHAR	*m_pszText;		//	For cases when we have > 1 character strings
			TCHAR	m_szText[2];	//	For single-character strings
		};

	public:
		//	constructor/destructor for this struct
		SUndoRecord() { memset(this, 0, sizeof(SUndoRecord)); };

		void SetText(LPCTSTR pszText);
		void FreeText();

		LPCTSTR GetText() const
		{
			if (HIWORD((DWORD) m_pszText) != 0)
				return m_pszText;
			return m_szText;
		};
	};

#pragma pack(pop)

	class CInsertContext : public CUpdateContext
	{
	public:
		CPoint m_ptStart, m_ptEnd;
		virtual void RecalcPoint(CPoint &ptPoint);
	};

	class CDeleteContext : public CUpdateContext
	{
	public:
		CPoint m_ptStart, m_ptEnd;
		virtual void RecalcPoint(CPoint &ptPoint);
	};

	//	Lines of text
	CArray <SLineInfo, SLineInfo&> m_aLines;

	//	Undo
	CArray <SUndoRecord, SUndoRecord&> m_aUndoBuf;
	int m_nUndoPosition;
	int m_nSyncPosition;
	BOOL m_bUndoGroup, m_bUndoBeginGroup;

	//	Connected views
	CList <CCrystalEditView *, CCrystalEditView *> m_lpViews;

	//	Helper methods
	void InsertLine(LPCTSTR pszLine, int nLength = -1, int nPosition = -1);
	void AppendLine(int nLineIndex, LPCTSTR pszChars, int nLength = -1);

	//	Implementation
	BOOL InternalInsertText(CCrystalEditView *pSource, int nLine, int nPos, LPCTSTR pszText, int &nEndLine, int &nEndChar);
	BOOL InternalDeleteText(CCrystalEditView *pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos);

	//	[JRT] Support For Descriptions On Undo/Redo Actions
	void AddUndoRecord(BOOL bInsert, const CPoint &ptStartPos, const CPoint &ptEndPos, 
						LPCTSTR pszText, int nActionType = CE_ACTION_UNKNOWN);

	//	Overridable: provide action description
	virtual BOOL GetActionDescription(int nAction, CString &desc);

// Operations
public:
	//	Construction/destruction code
	CCrystalTextBuffer();
	~CCrystalTextBuffer();

	//	Basic functions
	BOOL InitNew(int nCrlfStyle = CRLF_STYLE_DOS);
	BOOL LoadFromFile(LPCTSTR pszFileName, int nCrlfStyle = CRLF_STYLE_AUTOMATIC);
	BOOL SaveToFile(LPCTSTR pszFileName, int nCrlfStyle = CRLF_STYLE_AUTOMATIC, BOOL bClearModifiedFlag = TRUE);
	void FreeAll();

	//	'Dirty' flag
	virtual void SetModified(BOOL bModified = TRUE);
	BOOL IsModified() const;

	//	Connect/disconnect views
	void AddView(CCrystalEditView *pView);
	void RemoveView(CCrystalEditView *pView);

	//	Text access functions
	int GetLineCount();
	int GetLineLength(int nLine);
	LPTSTR GetLineChars(int nLine);
	DWORD GetLineFlags(int nLine);
	int GetLineWithFlag(DWORD dwFlag);
	void SetLineFlag(int nLine, DWORD dwFlag, BOOL bSet, BOOL bRemoveFromPreviousLine = TRUE);
	void GetText(int nStartLine, int nStartChar, int nEndLine, int nEndChar, CString &text, LPCTSTR pszCRLF = NULL);

	//	Attributes
	int GetCRLFMode();
	void SetCRLFMode(int nCRLFMode);
	BOOL GetReadOnly() const;
	void SetReadOnly(BOOL bReadOnly = TRUE);

	//	Text modification functions
	BOOL InsertText(CCrystalEditView *pSource, int nLine, int nPos, LPCTSTR pszText, int &nEndLine, int &nEndChar, int nAction = CE_ACTION_UNKNOWN);
	BOOL DeleteText(CCrystalEditView *pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos, int nAction = CE_ACTION_UNKNOWN);

	//	Undo/Redo
	BOOL CanUndo();
	BOOL CanRedo();
	BOOL Undo(CPoint &ptCursorPos);
	BOOL Redo(CPoint &ptCursorPos);

	//	Undo grouping
	void BeginUndoGroup(BOOL bMergeWithPrevious = FALSE);
	void FlushUndoGroup(CCrystalEditView *pSource);

	//	Browse undo sequence
	POSITION GetUndoDescription(CString &desc, POSITION pos = NULL);
	POSITION GetRedoDescription(CString &desc, POSITION pos = NULL);

	//	Notify all connected views about changes in text
	void UpdateViews(CCrystalEditView *pSource, CUpdateContext *pContext,
					DWORD dwUpdateFlags, int nLineIndex = -1);

	// More bookmarks
	int FindNextBookmarkLine(int nCurrentLine = 0);
	int FindPrevBookmarkLine(int nCurrentLine = 0);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCrystalTextBuffer)
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CCrystalTextBuffer)
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};



/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清一区在线| 蜜臀av在线播放一区二区三区| 精品精品国产高清一毛片一天堂| 欧美视频一区二区三区| 日本精品视频一区二区| 色婷婷精品大视频在线蜜桃视频| 不卡视频在线观看| 91美女福利视频| 在线观看一区二区视频| 欧美午夜寂寞影院| 日韩一区二区三区av| 亚洲国产高清在线| 亚洲色图制服诱惑 | 亚洲成人三级小说| 亚洲尤物视频在线| 日本怡春院一区二区| 激情小说欧美图片| 成人性生交大片免费| 91一区二区三区在线播放| 色视频欧美一区二区三区| 在线观看一区二区视频| 日韩欧美激情在线| 中国av一区二区三区| 亚洲一区日韩精品中文字幕| 日本午夜一本久久久综合| 狠狠狠色丁香婷婷综合久久五月| 国产寡妇亲子伦一区二区| 色天天综合色天天久久| 制服丝袜av成人在线看| 欧美国产国产综合| 天天影视涩香欲综合网| 国产美女视频一区| 在线观看国产精品网站| 日韩欧美成人一区| 亚洲私人影院在线观看| 久久精品二区亚洲w码| 99精品久久99久久久久| 日韩一区二区电影在线| 中文字幕在线观看一区| 肉丝袜脚交视频一区二区| 国产不卡视频一区二区三区| 欧美三级在线视频| 国产日韩视频一区二区三区| 午夜精品福利久久久| av动漫一区二区| 精品久久一二三区| 樱桃视频在线观看一区| 国产一区不卡在线| 欧美日韩国产片| 国产精品无人区| 激情国产一区二区| 欧美伦理电影网| 一区二区三区日韩在线观看| 国产91精品露脸国语对白| 56国语精品自产拍在线观看| 亚洲精品国产视频| 成人av在线一区二区三区| 精品国产乱码久久久久久久久 | 欧美色倩网站大全免费| 中日韩av电影| 国产成人午夜片在线观看高清观看| 欧美日韩精品一区二区三区 | 久久亚洲一区二区三区四区| 亚洲电影一级黄| 在线亚洲欧美专区二区| 一区视频在线播放| 成人精品免费网站| 国产精品网站在线播放| 国产精品1区2区3区在线观看| 6080国产精品一区二区| 午夜影院在线观看欧美| 欧美日韩一区二区在线观看| 一区二区三区免费在线观看| 91国模大尺度私拍在线视频| 亚洲欧美日韩国产手机在线| 99re66热这里只有精品3直播| 欧美国产精品中文字幕| 成人午夜免费视频| 国产精品拍天天在线| av中文一区二区三区| 亚洲欧美国产高清| 欧美在线观看禁18| 丝袜亚洲另类欧美综合| 777久久久精品| 国产一区二区在线看| 国产日产欧美精品一区二区三区| 国产精品66部| 亚洲男人的天堂网| 在线观看网站黄不卡| 亚洲成av人片一区二区| 3atv在线一区二区三区| 国产一区欧美一区| 国产精品国产三级国产有无不卡| 91九色02白丝porn| 琪琪久久久久日韩精品| xvideos.蜜桃一区二区| 91在线精品一区二区三区| 一区二区三区精品在线| 日韩美女一区二区三区| 成人激情小说乱人伦| 亚洲一二三区不卡| 久久久99精品免费观看不卡| 91蜜桃在线免费视频| 奇米综合一区二区三区精品视频| 久久久久久久久久美女| 色婷婷一区二区三区四区| 日韩在线播放一区二区| 日本一区二区久久| 6080午夜不卡| 91亚洲精品乱码久久久久久蜜桃| 亚洲成a人v欧美综合天堂| 久久亚洲精品小早川怜子| 97se亚洲国产综合自在线不卡| 热久久免费视频| 中文字幕亚洲一区二区va在线| 欧美乱妇一区二区三区不卡视频| 成人网在线播放| 看国产成人h片视频| 一区二区国产视频| 日本一区二区成人在线| 777a∨成人精品桃花网| 91伊人久久大香线蕉| 国产真实乱偷精品视频免| 亚洲一区二区三区四区在线| 国产精品婷婷午夜在线观看| 日韩视频一区二区| 欧美日韩视频专区在线播放| 东方aⅴ免费观看久久av| 天天综合网天天综合色| 亚洲综合自拍偷拍| 国产精品白丝在线| 欧美成人女星排名| 91精品国产综合久久精品app | 日韩专区中文字幕一区二区| 国产精品久久久久久久久久免费看 | 精品第一国产综合精品aⅴ| 欧美精品成人一区二区三区四区| aaa亚洲精品| 成人久久久精品乱码一区二区三区| 久久精品国产秦先生| 日韩在线一二三区| 午夜激情久久久| 午夜av电影一区| 日韩成人午夜精品| 日韩综合一区二区| 日本三级韩国三级欧美三级| 亚洲永久精品大片| 性久久久久久久久久久久 | 91精品久久久久久久99蜜桃| 在线观看精品一区| 欧美日韩国产一级| 91精品国产乱码久久蜜臀| 91.com视频| 2020国产精品久久精品美国| 精品国产三级电影在线观看| 26uuu久久天堂性欧美| 久久九九全国免费| 国产精品欧美久久久久无广告| 国产欧美日韩亚州综合| 国产精品久久久久影院老司| 日韩美女视频一区| 亚洲国产一区视频| 免费欧美日韩国产三级电影| 美脚の诱脚舐め脚责91| 国产高清无密码一区二区三区| 大尺度一区二区| 在线亚洲+欧美+日本专区| 欧美丰满美乳xxx高潮www| 日韩精品中文字幕一区| 国产偷v国产偷v亚洲高清 | 欧美亚洲国产一区二区三区| 欧美三级电影一区| 亚洲精品在线免费播放| 亚洲国产精品ⅴa在线观看| 亚洲男人的天堂在线aⅴ视频| 午夜久久久久久久久| 九九久久精品视频| 97久久超碰国产精品| 欧美一区二区三区在线视频| 久久久亚洲高清| 一区二区三区四区在线播放| 日韩av在线免费观看不卡| 国产揄拍国内精品对白| 日本福利一区二区| 精品99一区二区三区| 亚洲免费观看高清完整| 久久国内精品视频| av亚洲精华国产精华精| 91麻豆精品国产91久久久 | 亚洲1区2区3区4区| 国产精品一二一区| 欧美日本在线播放| 中文字幕av一区二区三区免费看| 亚洲国产人成综合网站| 国产一区二区三区不卡在线观看| 91国偷自产一区二区开放时间 | 五月婷婷另类国产| 成人av在线播放网址| 国产精品传媒入口麻豆| 三级久久三级久久久|