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

📄 ceditview.h

📁 日本的开源编辑器源码
💻 H
📖 第 1 页 / 共 4 页
字号:
	int		m_nViewTopLine;		/* 表示域の一番上の行(0開始) */
	int		m_nViewLeftCol;		/* 表示域の一番左の桁(0開始) */
	/*!	@brief 直前のX座標記憶用

		フリーカーソルモードでない場合にカーソルを上下に移動させた場合
		カーソル位置より短い行では行末にカーソルを移動するが,
		さらに移動を続けた場合に長い行で移動起点のX位置を復元できるように
		するための変数.
		
		@par 使い方
		読み出しはCEditView::Cursor_UPDOWN()のみで行う.
		カーソル上下移動以外でカーソル移動を行った場合には
		直ちにm_nCaretPosXの値を設定する.そうしないと
		その直後のカーソル上下移動で移動前のX座標に戻ってしまう.
	
		ビュー左端からのカーソル桁位置(0開始)
		
		@date 2004.04.09 genta 説明文追加
	*/
	int		m_nCaretPosX_Prev;
	int		m_nCaretPosX;		/* ビュー左端からのカーソル桁位置(0開始)*/
	int		m_nCaretPosY;		/* ビュー上端からのカーソル行位置(0開始)*/
	int		m_nCaretPosX_PHY;	/* カーソル位置  改行単位行先頭からのバイト数(0開始)*/
	int		m_nCaretPosY_PHY;	/* カーソル位置  改行単位行の行番号(0開始)*/

	int		m_nSrchStartPosX_PHY;	/* 検索/置換開始時のカーソル位置  改行単位行先頭からのバイト数(0開始) */	// 02/06/26 ai
	int		m_nSrchStartPosY_PHY;	/* 検索/置換開始時のカーソル位置  改行単位行の行番号(0開始) */				// 02/06/26 ai
	BOOL	m_bSearch;				/* 検索/置換開始位置を登録するか */											// 02/06/26 ai
	int		m_nCharSize;			/* 対括弧の文字サイズ */	// 02/09/18 ai 
	int		m_nBracketCaretPosX_PHY;/* 前カーソル位置の括弧の位置 改行単位行先頭からのバイト数(0開始) */	// 03/02/18 ai
	int		m_nBracketCaretPosY_PHY;/* 前カーソル位置の括弧の位置 改行単位行の行番号(0開始) */				// 03/02/18 ai
	int		m_nBracketPairPosX_PHY;	/* 対括弧の位置 改行単位行先頭からのバイト数(0開始) */	// 02/12/13 ai
	int		m_nBracketPairPosY_PHY;	/* 対括弧の位置 改行単位行の行番号(0開始) */			// 02/12/13 ai
	BOOL	m_bDrawBracketPairFlag;	/* 対括弧の強調表示を行なうか */						// 03/02/18 ai
	BOOL	m_bDrawSelectArea;		/* 選択範囲を描画したか */	// 02/12/13 ai

	/*
	||  メンバ変数
	*/
	char*			m_pszAppName;	/* Mutex作成用?ウィンドウクラス名 */
	HINSTANCE		m_hInstance;	/* インスタンスハンドル */
	HWND			m_hwndParent;	/* 親ウィンドウハンドル */

	DLLSHAREDATA*	m_pShareData;
//	int				m_nSettingType;

	CEditDoc*		m_pcEditDoc;		/* ドキュメント */
	COpeBlk*		m_pcOpeBlk;			/* 操作ブロック */
	BOOL			m_bDoing_UndoRedo;	/* アンドゥ?リドゥの実行中か */
	HWND			m_hwndVScrollBar;	/* 垂直スクロールバーウィンドウハンドル */
	int				m_nVScrollRate;		/* 垂直スクロールバーの縮尺 */
	HWND			m_hwndHScrollBar;	/* 水平スクロールバーウィンドウハンドル */
	HWND			m_hwndSizeBox;		/* サイズボックスウィンドウハンドル */
	CSplitBoxWnd*	m_pcsbwVSplitBox;	/* 垂直分割ボックス */
	CSplitBoxWnd*	m_pcsbwHSplitBox;	/* 水平分割ボックス */
	//	Dec. 4, 2002 genta
	//	メニューバーへのメッセージ表示機能はCEditWndへ移管
	//HFONT			m_hFontCaretPosInfo;/* キャレットの行桁位置表示用フォント */
	//int			m_nCaretPosInfoCharWidth;
	//int			m_nCaretPosInfoCharHeight;
	//int			m_pnCaretPosInfoDx[64];	/* 文字列描画用文字幅配列 */
	HDC				m_hdcCompatDC;		/* 再描画用コンパチブルDC */
	HBITMAP			m_hbmpCompatBMP;	/* 再描画用メモリBMP */
	HBITMAP			m_hbmpCompatBMPOld;	/* 再描画用メモリBMP(OLD) */
//@@@2002.01.14 YAZAKI staticにしてメモリの節約((10240+10) * 3 バイト)
	static int		m_pnDx[10240 + 10];	/* 文字列描画用文字幅配列 */
	HFONT			m_hFont_HAN;		/* 現在のフォントハンドル */
	HFONT			m_hFont_HAN_FAT;	/* 現在のフォントハンドル */
	HFONT			m_hFont_HAN_UL;		/* 現在のフォントハンドル */
	HFONT			m_hFont_HAN_FAT_UL;	/* 現在のフォントハンドル */
//	2004.02.14 Moca m_hFont_ZENは、未使用につき削除
//	HFONT			m_hFont_ZEN;		/* 現在のフォントハンドル */
	HFONT			m_hFontOld;
	BOOL			m_bCommandRunning;	/* コマンドの実行中 */
	/* 分割状態 */
	int				m_nMyIndex;
	/* キーリピート状態 */
	int				m_bPrevCommand;
	/* 入力状態 */
	int		m_nCaretWidth;			/* キャレットの幅 */
	int		m_nCaretHeight;			/* キャレットの高さ */
	CCaretUnderLine m_cUnderLine;	/* アンダーライン */
	int		m_nOldUnderLineY;

	int		m_nOldCaretPosX;	// 前回描画したルーラーのキャレット位置 2002.02.25 Add By KK
	int		m_nOldCaretWidth;	// 前回描画したルーラーのキャレット幅   2002.02.25 Add By KK
	bool	m_bRedrawRuler;		// ルーラー全体を描き直す時 = true      2002.02.25 Add By KK

	/* 選択状態 */
	int		m_bSelectingLock;		/* 選択状態のロック */
	int		m_bBeginSelect;			/* 範囲選択中 */
	int		m_bBeginBoxSelect;		/* 矩形範囲選択中 */
	int		m_bBeginLineSelect;		/* 行単位選択中 */
	int		m_bBeginWordSelect;		/* 単語単位選択中 */
	/* 選択範囲を保持するための変数群
		これらはすべて折り返し行と、折り返し桁を保持している。
	*/
	int		m_nSelectLineBgnFrom;	/* 範囲選択開始行(原点) */
	int		m_nSelectColmBgnFrom;	/* 範囲選択開始桁(原点) */
	int		m_nSelectLineBgnTo;		/* 範囲選択開始行(原点) */
	int		m_nSelectColmBgnTo;		/* 範囲選択開始桁(原点) */
	int		m_nSelectLineFrom;		/* 範囲選択開始行 */
	int		m_nSelectColmFrom;		/* 範囲選択開始桁 */
	int		m_nSelectLineTo;		/* 範囲選択終了行 */
	int		m_nSelectColmTo;		/* 範囲選択終了桁 */
	int		m_nSelectLineFromOld;	/* 範囲選択開始行 */
	int		m_nSelectColmFromOld;	/* 範囲選択開始桁 */
	int		m_nSelectLineToOld;		/* 範囲選択終了行 */
	int		m_nSelectColmToOld;		/* 範囲選択終了桁 */
	int		m_nMouseRollPosXOld;	/* マウス範囲選択前回位置(X座標) */
	int		m_nMouseRollPosYOld;	/* マウス範囲選択前回位置(Y座標) */
	/* 画面情報 */
	int		m_nViewAlignLeft;		/* 表示域の左端座標 */
	int		m_nViewAlignLeftCols;	/* 行番号域の桁数 */
	int		m_nViewAlignTop;		/* 表示域の上端座標 */
	int		m_nTopYohaku;
	int		m_nViewCx;				/* 表示域の幅 */
	int		m_nViewCy;				/* 表示域の高さ */
	int		m_nViewColNum;			/* 表示域の桁数 */
	int		m_nViewRowNum;			/* 表示域の行数 */
	/* 表示方法 */
	int		m_nCharWidth;			/* 半角文字の幅 */
	int		m_nCharHeight;			/* 文字の高さ */
	/* 辞書Tip関連 */
	DWORD	m_dwTipTimer;			/* Tip起動タイマー */
	CTipWnd	m_cTipWnd;				/* Tip表示ウィンドウ */
	POINT	m_poTipCurPos;			/* Tip起動時のマウスカーソル位置 */
	BOOL	m_bInMenuLoop;			/* メニュー モーダル ループに入っています */
	CDicMgr	m_cDicMgr;				/* 辞書マネージャ */
	/* 入力補完 */
//	CHokanMgr	m_cHokanMgr;
	BOOL		m_bHokan;			//	補完中か?=補完ウィンドウが表示されているか?かな?
	//	Aug. 31, 2000 genta
	CAutoMarkMgr	*m_cHistory;	//	Jump履歴
	CRegexKeyword	*m_cRegexKeyword;	//@@@ 2001.11.17 add MIK

	/*
	||  実装ヘルパ関数
	*/
	void GetCurrentTextForSearch( CMemory& );			/* 現在カーソル位置単語または選択範囲より検索等のキーを取得 */
	void DestroyCaret( void ){	/* キャレットを破棄する(内部的にも破棄)*/
		::DestroyCaret();
		m_nCaretWidth = 0;
	}
protected:
//	CEOL GetCurrentInsertEOL( void );					/* 現在、Enterなどで挿入する改行コードの種類を取得 */

	BOOL MyGetClipboardData( CMemory&, BOOL* );			/* クリップボードからデータを取得 */
	BOOL MySetClipboardData( const char*, int, BOOL );	/* クリップボードにデータを設定 */
	int GetLeftWord( CMemory*, int );					/* カーソル直前の単語を取得 */
//	void PrintBitmap( HDC, int, int, const char* );		/* ビットマップファイル表示 */
//	HANDLE OpenDIB ( LPCSTR );							/* DIBファイルを開いてメモリDIBを作成 */
//	HANDLE ReadDibBitmapInfo ( int );					/* DIB形式のファイルを読む */
//	BOOL DibInfo ( HANDLE, LPBITMAPINFOHEADER );		/* CF_DIB形式のメモリブロックに関連付けられているDIB情報を取得します */
//	WORD PaletteSize ( VOID FAR * pv );					/* パレットのバイト数を計算します */
//	WORD DibNumColors ( VOID FAR * );					/* 情報ブロックのBitCountメンバを参照して、DIBの色数を判断します */
//	DWORD lread ( int, void*, DWORD );					/* データをすべて読み取る */
//	void TraceRgn( HRGN );								/* デバッグ用 リージョン矩形のダンプ */
//	void OnPaintOld( HDC, PAINTSTRUCT *, BOOL );		/* 通常の描画処理 */
	void OnPaint( HDC, PAINTSTRUCT *, BOOL );			/* 通常の描画処理 */
//	int DispLine( HDC, int, int, int, const unsigned char*, int, BOOL );/		* 行のテキスト/選択状態の描画 */
	int DispLineNew( HDC, const CLayout*, int&, int, int&, BOOL, int, BOOL );	/* 行のテキスト/選択状態の描画 */
	void DispLineNumber( HDC, const CLayout*, int, int );		/* 行番号表示 */
	void SetCurrentColor( HDC, int );							/* 現在の色を指定 */
	void DispRuler( HDC );										/* ルーラー描画 */
	void DrawRulerCaret( HDC hdc );								// ルーラーのキャレットのみ描画 2002.02.25 Add By KK
	int	DispText( HDC, int, int, const char*, int );	/* テキスト表示 */	//@@@ 2002.09.22 YAZAKI
	void DispTextSelected( HDC, int, int, int, int );			/* テキスト反転 */
//	int	DispCtrlCode( HDC, int, int, const unsigned char*, int );	/* コントロールコード表示 */
	void TwoPointToRect( RECT*, int, int, int, int );			/* 2点を対角とする矩形を求める */
	void DrawSelectArea( void );								/* 指定行の選択領域の描画 */
	void DrawSelectAreaLine( HDC, int, int, int, int, int );	/* 指定行の選択領域の描画 */
	int  LineColmnToIndex( const CLayout* pcLayout, int nColumn );		/* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */		// @@@ 2002.09.28 YAZAKI
	int  LineColmnToIndex( const CDocLine* pcDocLine, int nColumn );		/* 指定された桁に対応する行のデータ内の位置を調べる Ver1 */		// @@@ 2002.09.28 YAZAKI
	int  LineColmnToIndex2( const CLayout* pcLayout, int nColumn, int& pnLineAllColLen );	/* 指定された桁に対応する行のデータ内の位置を調べる Ver0 */		// @@@ 2002.09.28 YAZAKI
	int  LineIndexToColmn( const CLayout* pcLayout, int nIndex );		/* 指定された行のデータ内の位置に対応する桁の位置を調べる */	// @@@ 2002.09.28 YAZAKI
	int  LineIndexToColmn( const CDocLine* pcLayout, int nIndex );		/* 指定された行のデータ内の位置に対応する桁の位置を調べる */	// @@@ 2002.09.28 YAZAKI
	void CopySelectedAllLines( const char*, BOOL );				/* 選択範囲内の全行をクリップボードにコピーする */
	void ConvSelectedArea( int );								/* 選択エリアのテキストを指定方法で変換 */
	void ConvMemory( CMemory*, int );							/* 機能種別によるバッファの変換 */
	void OnSize( int, int );									/* ウィンドウサイズの変更処理 */
	int  OnVScroll( int, int );								/* 垂直スクロールバーメッセージ処理 */
	int  OnHScroll( int, int );								/* 水平スクロールバーメッセージ処理 */
	void OnLBUTTONDOWN( WPARAM, int, int );						/* マウス左ボタン押下 */
	void OnMOUSEMOVE( WPARAM, int, int );						/* マウス移動のメッセージ処理 */
	void OnLBUTTONUP( WPARAM, int, int );						/* マウス左ボタン開放のメッセージ処理 */
	void OnLBUTTONDBLCLK( WPARAM, int , int );					/* マウス左ボタンダブルクリック */
	void OnRBUTTONDOWN( WPARAM, int, int );						/* マウス右ボタン押下 */
	void OnRBUTTONUP( WPARAM, int, int );						/* マウス右ボタン開放 */
// novice 2004/10/11 マウス中ボタン対応
	void OnMBUTTONDOWN( WPARAM, int, int );						/* マウス中ボタン押下 */
// novice 2004/10/10 マウスサイドボタン対応
	void OnXLBUTTONDOWN( WPARAM, int, int );					/* マウス左サイドボタン押下 */
	void OnXRBUTTONDOWN( WPARAM, int, int );					/* マウス右サイドボタン押下 */
	LRESULT OnMOUSEWHEEL( WPARAM, LPARAM );						/* マウスホイールのメッセージ処理 */
	void BeginSelectArea( void );								/* 現在のカーソル位置から選択を開始する */
	void ChangeSelectAreaByCurrentCursor( int, int );			/* 現在のカーソル位置によって選択範囲を変更 */
	void ChangeSelectAreaByCurrentCursorTEST( int, int, int&, int&, int&, int& );/* 現在のカーソル位置によって選択範囲を変更 */
	int  MoveCursorToPoint( int, int );							/* マウス等による座標指定によるカーソル移動 */
	int  ScrollAtV( int );										/* 指定上端行位置へスクロール */
	int  ScrollAtH( int );										/* 指定左端桁位置へスクロール */
	//	From Here Sep. 11, 2004 genta ずれ維持の同期スクロール
	int  ScrollByV( int vl ){	return ScrollAtV( m_nViewTopLine + vl );}			/* 指定行スクロール*/
	int  ScrollByH( int hl ){	return ScrollAtH( m_nViewLeftCol + hl );}					/* 指定桁スクロール */
	void SyncScrollV( int );									/* 垂直同期スクロール */
	void SyncScrollH( int );									/* 水平同期スクロール */
	//	To Here Sep. 11, 2004 genta ずれ維持の同期スクロール
	int Cursor_UPDOWN( int, int );								/* カーソル上下移動処理 */
	void DrawBracketPair( bool );								/* 対括弧の強調表示 02/09/18 ai */
	void SetBracketPairPos( bool );								/* 対括弧の強調表示位置設定 03/02/18 ai */
	int GetColorIndex( HDC, const CLayout*, int );				/* 指定位置のColorIndexの取得 02/12/13 ai */
	bool IsBracket( const char*, int, int );					/* 括弧判定 03/01/09 ai */
public:
	void SetIMECompFormPos( void );								/* IME編集エリアの位置を変更 */
protected:
	void SetIMECompFormFont( void );							/* IME編集エリアの表示フォントを変更 */
	void SetParentCaption( BOOL = FALSE );						/* 親ウィンドウのタイトルを更新 */
public:
	void DrawCaretPosInfo( void );								/* キャレットの行桁位置を表示する */
protected:
	BOOL IsCurrentPositionURL( int, int, int*, int*, int*, char** );/* カーソル位置にURLが有る場合のその範囲を調べる */
	int IsCurrentPositionSelected( int, int );					/* 指定カーソル位置が選択エリア内にあるか */

⌨️ 快捷键说明

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