1

感谢 Rob Kennedy 对我关于如何设置 Skype 聊天窗口文本的问题的回答。

但是,每当我使用

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

然后,当我单击 Skype 中的聊天编辑控件时,carret 放置在开头,需要单击以使其再次“正确”。

是否有用于设置 carret 位置的 Windows 消息?或者至少可以用来将 Carret Position 设置为文本末尾的东西?:)

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));

将在 Rich Edit 控件中的第三个字符之前设置插入符号。

于 2011-04-25T12:31:48.393 回答