Windows 在外部应用程序中设置carret位置';s文本区?
感谢Rob Kennedy对我的问题的回答 但是,每当我使用Windows 在外部应用程序中设置carret位置';s文本区?,windows,delphi,window-handles,Windows,Delphi,Window Handles,感谢Rob Kennedy对我的问题的回答 但是,每当我使用 SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text))); 然后,当我单击Skype中的聊天编辑控件时,carret被放置在开始处,需要进行一些单击才能使其再次“正确” 是否有用于设置卡雷特位置的Windows消息?或者至少是我可以用来将Carret位置设置到文本末尾的东西?:) 是的,有: wParam应该是0,lParam应该是指向TCharRange结构的
SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text)));
然后,当我单击Skype中的聊天编辑控件时,carret被放置在开始处,需要进行一些单击才能使其再次“正确”
是否有用于设置卡雷特位置的Windows消息?或者至少是我可以用来将Carret位置设置到文本末尾的东西?:) 是的,有:
wParam
应该是0
,lParam
应该是指向TCharRange
结构的指针,该结构包含所选内容中的第一个和最后一个字符。您希望这些字符相等(即选择零个字符)
比如说,
var
cr: TCharRange;
begin
cr.cpMin := 2;
cr.cpMax := 2;
SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, integer(@cr));
将在Rich Edit控件的第三个字符之前设置插入符号