• ベストアンサー

EM_GETSELメッセージについて。

質問タイトルのようにEM_GETSELメッセージについての質問です。 カーソルで選択されている文字列の最初の位置と最後の位置を調査するため SendMessage(hEdit, EM_GETSEL, (WPARAM)&Start, (LPARAM)&End); このように記述しました。 ここで、例えば検索文字列内にカーソルのついた文字列がない場合にはStart、Endの値は何が格納されるのでしょう? 初期値を指定した場合はその値のままなのでしょうか? それとも見つからない場合は何か返り値が発生するのでしょうか? ご教授よろしくお願いします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★『Start』と『End』には同じ値が格納されます。 ・これはカーソル(キャレット)位置をオフセット値で得ることになります。  同様に『EM_SETSEL』メッセージで『Start』と『End』に同じ値をセットすると  範囲選択ではなく、カーソル(キャレット)位置をオフセット値で設定することになります。 ・範囲選択されていないと『EM_GETSEL』の戻り値は、上位16ビット、下位16ビットが  同じ値になります。ただし、16ビットで表せる場合ですが…。 ・下の『参考URL』で『EM_SETSEL』メッセージで始点、終点を同じにするとカーソルの移動  になるサンプルがあります。エディット・ボックスのメッセージや仕組みを理解するための  参考にどうぞ。→質問内容も読んでテストして下さい。 ・以上。おわり。

参考URL:
http://oshiete1.goo.ne.jp/qa2854941.html
noconan
質問者

お礼

遅くなりましたが、解説ありがとうございました。 色々お世話になった結果、文字列検索プログラムをうまくを組むことができました^^ ありがとうございました。

関連するQ&A