【问题标题】:Use WM_SETTEXT to replace contents of window whilst maintaining window scroll position使用 WM_SETTEXT 替换窗口内容,同时保持窗口滚动位置
【发布时间】:2013-05-24 07:59:00
【问题描述】:

我正在构建一个将 RTF 文本发送到第三方窗口的应用程序。它基本上在原始的第三方 IDE 中提供了自动更正功能。

我可以设置此窗口的内容(即更正后的代码),但这样做会将窗口的滚动位置设置为顶部。这很烦人,因为用户必须向下滚动到自动更正开始之前的位置。

我可以将光标设置到正确的位置(页面下方),但这不会阻止窗口滚动到顶部。

有什么建议吗?

【问题讨论】:

  • 你能用 EM_REPLACESEL 替换需要的东西吗?

标签: c# winapi sendmessage


【解决方案1】:

WM_SETTEXT 是替换一小部分文本时使用的错误消息。你使用WM_SETTEXT来设置控件的整个文本内容。

您想要的是选择需要更正的单词。为此使用EM_SETSEL。然后使用EM_REPLACESEL 将文本替换为更正版本。我希望这也能解决不必要的滚动问题。

【讨论】:

  • 谢谢!一旦我发现我必须使用 {\rtf 等标记插入它,它就会运行良好。仍然需要看看它是否能解决我的滚动问题,但我怀疑你是对的,它会解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多