ページ 11

エディタの文字列挿入

Posted: 2006年8月22日(火) 17:31
by MML
エディタに文字列を挿入したいのですが
どうすればいいのでしょうか?

やりたいことはたとえば以下のような文章があって、
(「|」はカーソル)

[今日も|ひまだった]

|があるところに「とてつもなく」というのを挿入したいのですが
どうすればいいのでしょうか?

[今日もとてつもなくひまだった]

ぐぐったんですが、なかなか出てこなくて、、、

Posted: 2006年8月22日(火) 17:44
by Toshi

コード: 全て選択

SendMessage(hEditWnd,EM_REPLACESEL,TRUE,"とてつもなく")
このように EM_REPLACESEL を送ります。
これは文字列が選択状態である場合にはその範囲を指定された文字列で置き換え、
何も選択されていない場合はカーソルの位置に指定された文字列を挿入します。
wParam が TRUE だと「元に戻す」コマンドで元に戻せます。FALSE だと戻せません。
lParam に文字列へのポインタを指定します。

Re: エディタの文字列挿入

Posted: 2006年8月22日(火) 18:43
by 7
> エディタに文字列を挿入したいのですが
> どうすればいいのでしょうか?

コード: 全て選択

Function InText(ByVal hWnd As HWND,ByVal lpszString As LPCSTR,ByVal bUndo As BOOL) As LRESULT
	InText=SendMessage(hWnd,EM_REPLACESEL,bUndo As WPARAM,lpszString As LPARAM)
End Function

Dim hEdit As HWND
	hEdit=GetDlgItem(hMainWnd,EditBox1)

	' 文字列を挿入、あるいは置換え
	InText(hEdit,"Insert",TRUE)
> ぐぐったんですが、なかなか出てこなくて、、、
BackSearchABで「挿入」と検索してみるとヒットします。

Re: エディタの文字列挿入

Posted: 2006年8月23日(水) 10:10
by MML
7さん、Toshiさん、ありがとうございます。よくわかりました。