5

SendMessageこれは、関数を使用してTextBoxに入力するための私のコードです。

  C := 'Hey there';
  SendMessage(h1, WM_SETTEXT, 1, Integer(PChar(C)));

では、どうすればカーソルをテキストの最後に移動できますか?

4

2 に答える 2

19

あなたが本当にメッセージでこれをしたいなら、見てください:

  1. EM_SETSEL
  2. EM_EXSETSEL

また、編集用の完全なリファレンスがあります。

http://msdn.microsoft.com/en-us/library/ff485923%28v=VS.85%29.aspx

コード(メッセージなし)では、次のようにします。

Edit1.SelLength := 0;
Edit1.SelStart := 0;   // set caret before first character
...
Edit1.SelStart := 1;   // set caret before second character
...
Edit1.SelStart := Length(Edit1.Text) // set caret after the last character

メッセージ付き:

SendMessage(h1, EM_SETSEL, Length(C), Length(C));
于 2010-10-08T04:51:53.643 に答える
1

あなたのコードは間違っていると思います。「EM_SETSEL」パラメータを使用する必要があります。私の問題はこのコードで解決しました:

  //Set a value for external textbox
  SendMessage(h1, WM_SETTEXT, 0, Integer(PChar(C)));
  //move the cursor to end of the textbox(editbox,field,...)
  SendMessage(h1, EM_SETSEL, length(C), length(C));

ともあれ、ありがとう :)

于 2010-10-08T05:56:57.233 に答える