RichTextBoxで貼り付けられた画像の位置を取得するには?

解決


スパイダー  2007-06-11 07:02:32  No: 98953

お世話になります。
RichTextBoxで、貼り付けられた画像の位置を知ることは可能でしょうか。
テキストなら検索メソッド等があるようですが、画像オブジェクトになるとやり方がわかりません。
また、RichTextBox上で貼り付け画像を選択した事をプログラム側が知る方法があるでしょうか。
よろしくお願いします。

環境:WinXP,VB6.0(SP2)


我龍院  2007-06-11 17:30:15  No: 98954

>RichTextBoxで、貼り付けられた画像の位置を知ることは可能でしょうか。
TextRTFを参照すれば可能。

>また、RichTextBox上で貼り付け画像を選択した事をプログラム側が知る方法があるでしょうか。
SelChangeイベントでSelStartとSelLengthを見る。


スパイダー  2007-06-12 02:33:33  No: 98955

我龍院さん、お答えありがとうございます。
>TextRTFを参照すれば可能。
TextRTFで画像のタグ(といっていいのかな?)を検索するということでしょうか。それで得られる位置はRTFでの位置ですよね?そこからエディタ上での位置を特定できる方法があるのでしょうか?
Help等は一通り見て、自分で考えて見たりもしたんですが見当がつきません。RichTextBoxに対して根本的な勘違いがあるのかもしれません。


我龍院  2007-06-12 03:51:25  No: 98956

>それで得られる位置はRTFでの位置ですよね
ちょっと、意味がわかりません。(^^;
機械図面があって、ある部品の位置が書かれていた場合、それは
部品の位置ですか、それとも図面での位置でしょうか?
RTFはリッチテキストの設計図ですから、そこに書かれた位置が
リッチテキスト上の画像の位置です。
画像の位置は絶対位置ではなく、テキストの文字との並び位置になっています。
Widthは\objwXXXでHeightは\objhXXXで表されています。


スパイダー  2007-06-12 04:48:53  No: 98957

たびたびすいません。
自分でもどう説明したらうまく伝わるのかわからないですが・・・
TextRTFというPropertyを参照すると、リッチテキスト形式でタグとかエンコードされた文字とかが並んでいるんですが、そこから表示されている位置(RichiTextBox上で選択した時のSelStartと同じ単位です)がわかるんでしょうか?(そもそもリッチテキストのフォーマットそのものを理解していないのが問題かもしれません)

私が求めていることを形にしますと、

0123456789(改行)
0123456789(改行)
画像オブジェクト(改行)

という内容がRichiTextBoxにあった時、二行目の先頭文字の位置(は一行目の文字数10+改行2=12となるのは、確認しました。
やりたいのは、画像オブジェクトの位置が24であるということを、プログラムでどのようにして知ることができるのか、です。
(テキストなら検索メソッドがありますが・・・)


スパイダー  2007-06-12 04:52:55  No: 98958

追記です。
我龍院さんの機械図面でいうと、部品の位置ということになるでしょうか。
あと、私の書き込みの最後のほうで
>二行目の先頭文字の位置(は
とありますが余分が"("が入っていました。
失礼しました。


我龍院  2007-06-12 06:45:38  No: 98959

>TextRTFというPropertyを参照すると、リッチテキスト形式でタグとかエンコードされた文字とかが並んでいるんですが、
>そこから表示されている位置(RichiTextBox上で選択した時のSelStartと同じ単位です)がわかるんでしょうか?
当然判ります、判らなければ表示出来ない。
RTFのフォーマットをある程度知らないと難しいですね。


スパイダー  2007-06-12 08:18:48  No: 98960

>当然判ります、判らなければ表示出来ない。
RichTextBoxだってRTFを解釈して表示していますからね。でもそんな事は判りきった事で、そんな事しなくてもいい方法を知りたかったんです。
でもTextRTFプロパティを解釈するしか方法はないみたいですね。
フォーマットを勉強してがんばっています。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加