-1


0

たとえば、次のテキストを編集しているとします(\ tはタブではなく、テキストではありません)。 '\ t \ t \ t一部のテキスト…​'で、入力キーボードの位置が 'S’の直前にあります)と私は 'S’の前にタブの数を取得したい(この場合は3です)

それでは、Win32 APIを使用してその数のタブを取得する方法はありますか?

PS 現在の行全体を取得する(そしてそのテキストを解析する)ための関数があるかもしれません。

edit:だから私のプログラム(これはバックグラウンドで実行されていてGUIを持っていない)が現在アクティブな(現在編集中の)テキストエディタの現在アクティブな行からのタブ数を決定したいのです。

2 Answer


1


標準のWindowsメモ帳などの一部のアプリケーションでは、他のアプリケーションからこれを実行できる可能性があります。 メモ帳自体は、サイズ変更可能なウィンドウ内の大きな Win32 "Edit"コントロールにすぎないので、通常のWin32 Editコントロールすべてメッセージを使って実際のテキストやキャレット位置などを取得することができます。

ただし、Windowsテキストエディタの一般的なケースでは、アプリケーションがテキスト編集のニーズにWin32 Editコントロールを使用する必要はありません(実際、そうするためには単にメモ帳を再発明するだけです)。 キャレットが指している場所を見つけるための標準のWin32 APIメソッドはありません。アプリケーションは適切な方法で画面上にテキストを自由に描画できるため、対応するAPIを使用せずにそのテキストをアプリケーションの内部に格納します。コール)。


0


Javaコーディングのベストプラクティスは、コードオペレーティングシステムのプラットフォームを可能な限り独立させることです。 本質的にWindows固有のユーティリティを実装しようとしている場合(例: Win32 APIに大きく依存しているため、JavaではなくCまたはC#を使用することをお勧めします。