カーソル位置を指定して文字列を入力

[戻る]
hanabi 2004/01/12(月) 17:25:28
いつもお世話になってます。
今回も初歩的な質問かもしれませんがよろしくお願いいたします。
開発環境はwindows2000 VC++6.0 SDI です。

今回は、
dlg上にあるボタンを押したらEditBoxに入っている文字列を別のRichEditBoxに出力する
というプログラムを作っています。

それを少し改良をしようと思いまして、RichEditBoxにあらかじめ文字列が入っていた場
合、カーソル位置に文字列を入力したいと考えています。
例えば入力したい文字列「ab」があり、RichEditBoxには文字列「cdef」があらかじめ
入っています。カーソル位置がdとeの間にあったとすると、ボタンを押すとRichEditBox
には「cdabef」というふうに表示させたいのです。

カーソル位置の取得はCEdit::GetSel()でできると考えたのですが、
位置を取得した後にそれをどのように使えばいいのかがわかりません。

どなたかアドバイスなどありましたらよろしくお願いいたします。

dairygoods 2004/01/13(火) 10:11:18
ReplaceSelでできます。

hanabi 2004/01/13(火) 12:28:44
[[解決]]
dairygoodsさんありがとうございます。

ReplaceSel関数を使い、以下のようにしたらうまく動きました。

 int m_Start,m_End;
CEdit* m_Edit = (CEdit*)GetDlgItem(IDC_RICHEDIT);//文字列を挿入するRichEditBoxのID
m_Edit->GetSel(m_Start,m_End);          //カーソル位置の取得
m_Edit->ReplaceSel("文字列");          //カーソル位置に「文字列」を挿入


どうもありがとうございました。

古いスレッドには追加発言できません。