在外部应用程序的文本区域中设置木-位置?

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

但是,每当我设置文本使用

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

然后,当我点击Skype中的聊天编辑控件时,将卡is放置在开始处,并且需要点击以使其再次“正确”。

是否有一个Windows消息设置的地毯位置? 或者至less是我可以用来将“Carret位置”设置到文本末尾的东西? 🙂

是的,有: EM_EXSETSEL

wParam应该是0lParam应该是一个指向包含选择中第一个和最后一个字符的TCharRange结构的指针。 你想要这些是相等的(即,选择零个字符)。

例如,

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

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