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