◀マクロトップへ
  • 230 検索オプション状態取得とウィンドウ内でのカーソル位置
    • 231 Re:検索オプション状態取得とウィンドウ内でのカーソル位置
  • [230] 検索オプション状態取得とウィンドウ内でのカーソル位置 しゃ 2006年01月11日 21:00

    現在、次検索/前検索でヒットした文字列の位置が画面の真ん中にくるようなマクロを作成しています。
    以下、次検索の例を前提に記述します。

    S_SearchNext(''); // 次を検索
    S_CurLineCenter(); // カーソル行をウィンドウ中央へ

    ですが、次検索で第2引き数を↑のようにすると、検索オプション(例えば「大文字小文字を区別する」や「正規表現検索」)がOFFになってしまいます。
    これを回避する方法は無いのでしょうか?
    下記2ケースが回避策としてありそうなのですがわかりません。
    いかがでしょうか?実現不可でしょうか?

    1) 第2引き数で0~0x3f以外の値に「未指定」なる意味のビットがある?
    2) 現在検索オプション状態を得る関数マクロがある?

    また、現カーソルの論理行数を得たり、現カーソル位置のウィンドウ内の位置を知るマクロ関数もありませんでしょうか?
    (やりたいことは、表示している画面に検索対象の複数文字列が存在してた場合、上記で「カーソル行をウィンドウ中央へ」をしないようにしたい)
    • [231] Re:検索オプション状態取得とウィンドウ内でのカーソル位置 maru 2006年01月12日 22:35

      マクロでは、微妙に無理みたいですね…。惜しい。

      CEditView::Command_SEARCH_NEXTの第一引数には
      "falseで、CEditViewの現在設定されている検索パターンを使う"
      と説明されてるので、CEditView::HandleCommandの中の
      case F_SEARCH_NEXT:のあたりでどうにかするしか…。