感谢 Rob Kennedy 对我关于如何设置 Skype 聊天窗口文本的问题的回答。
但是,每当我使用
SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text)));
然后,当我单击 Skype 中的聊天编辑控件时,carret 放置在开头,需要单击以使其再次“正确”。
是否有用于设置 carret 位置的 Windows 消息?或者至少可以用来将 Carret Position 设置为文本末尾的东西?:)
感谢 Rob Kennedy 对我关于如何设置 Skype 聊天窗口文本的问题的回答。
但是,每当我使用
SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text)));
然后,当我单击 Skype 中的聊天编辑控件时,carret 放置在开头,需要单击以使其再次“正确”。
是否有用于设置 carret 位置的 Windows 消息?或者至少可以用来将 Carret Position 设置为文本末尾的东西?:)
是的,有: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 控件中的第三个字符之前设置插入符号。