1

Skype チャット ウィンドウのテキストの設定方法に関する私の質問に対する Rob Kennedy の回答に感謝します。

ただし、テキストを設定するたびに

SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text)));

次に、Skype でチャット編集コントロールをクリックすると、キャレットが最初に配置され、もう一度「正しく」するにはクリックする必要があります。

キャレットの位置を設定するための Windows メッセージはありますか? または、少なくともキャレット位置をテキストの最後に設定するために使用できるものはありますか? :)

4

1 に答える 1

3

はい、あります: EM_EXSETSEL.

wParamである必要があり0、選択範囲の最初と最後の文字を含む構造体lParamへのポインターである必要があります。TCharRangeこれらを等しくする必要があります (つまり、ゼロ文字が選択されます)。

例えば、

var
  cr: TCharRange;
begin
  cr.cpMin := 2;
  cr.cpMax := 2;
  SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, integer(@cr));

リッチ エディット コントロールの 3 番目の文字の直前にキャレットを設定します。

于 2011-04-25T12:31:48.393 に答える