【问题标题】:Setting carret-position in an External Application's text area?在外部应用程序文本区域中设置插入符号位置?
【发布时间】:2011-04-25 12:19:27
【问题描述】:

感谢 Rob Kennedy 在how to set the Skype Chat window text. 上回答我的问题

但是,每当我使用

设置文本时
SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text)));

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

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

【问题讨论】:

    标签: windows delphi window-handles


    【解决方案1】:

    是的,有: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 控件中的第三个字符之前设置插入符号。

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多