- PR -

C#でキャレットの取得

1
投稿者投稿内容
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2003-09-06 01:47
いままではJavaでServletの開発などをしてみましたが、
趣味的にC#で入力支援ツールを作っています。

そこで、他のアプリケーションのキャレット(テキストエディタなどのカーソル位置)
を取得してそのキャレット付近にポップアップでFormを表示させようとしています。

APIをつかって取得しなければいけないというところまでは調べられたのですが、
以下のコードで取得しようとしたら、XもYも0になってしまい、画面の左上にしか
表示できません。
マウスカーソルの位置に表示することはできているのですが、それだと目の移動が
気になってしまうので、できればカーソル位置付近に表示させたいと考えております。

ネットで彷徨っても、自フォームのテキストボックスのキャレットやリッチテキストの
キャレット取得しか見つからなかったもので・・・。

ご存知の方がいらっしゃいましたら、ご教授願います。

[DllImport("user32.dll", EntryPoint="GetCaretPos", CallingConvention=CallingConvention.Winapi)]
public static extern uint GetCaretPos(PointAPI caretPoint);

public struct PointAPI
{
public uint x,y;
public PointAPI(uint p1, uint p2)
{
x = p1;
y = p2;
}
}
1

スキルアップ/キャリアアップ(JOB@IT)