📄 ceditview.h
字号:
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 + -