• ベストアンサー

始めたばかりのVCで

初めて質問させていただきます。 始めたばかりのVCで VC++のMFCを使ってエディタを作ろうとしてますが、 AFXRICHのCRichEditCtrl(RichText画面)で指定の文字記号の位置に文章などを差し込みたいのですが指定位置(文字記号を判別して)にカーソルを移動させる方法が分からずにいます。 どのようにプログラムしたらよいか教えていただけないでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mcWalker
  • ベストアンサー率69% (27/39)
回答No.1

MFCではありませんが、API ベースで言えば、 rich edit control のテキストの長さは、 GetWindowTextLength() で得られ、(これでテキスト格納先を確保して) GetWidnowText() でテキストの内容を取り出せます。 で、目的の文字の場所を(テキスト内容の)オフセットで得て、 Edit_SetSel() でこのオフセットを指定すると、カーソルが そこでブリンクします。 (Edit_SetSel() は、範囲指定のマクロ関数で、始点終点を指定します。 幅があると反転表示になります。 マクロの元は、SendMessage() コマンドの "EM_..." をご覧に なると、何でも出来る程いろいろあります。) MFC では rich edit control class の定義をご覧になると、使える関数が 分かるのではないでしょうか。

nannjakore
質問者

お礼

ありがとうございます。早々試してみました。かなり期待に近づいた感じでした。まともにマニュアルも見てない状態でいきなりエディタをつくろうなんて大それたことを考えでして、それでもどうにか構造体、CLASS間のやり取りが漠然と理解できたところです。 この回答を参考にがんばってみます。ありがとうございました。

nannjakore
質問者

補足

SendMessage() コマンドの "EM_..."エディットコントロール今見てます。かなりはまってしまいましたポリポリ (・・*)ゞ 面白いですね。それに今更ながらCの奥の深さ感じました。まだまだ始めたばかりで分からないことばかりですがこれからもよろしくお願いします。本当にありがとうございました。

関連するQ&A